MySQL-基础总结

 

目录

数据库

常见数据库

数据库相关概念

安装MySQL

MySQL修改密码

MySQL 编码设置

MySQL基本语句

- 库操作

增(创建数据库):CREATE DATABASE 数据库名 charset utf8;

删:DROP DATABASE 数据库名;

选择数据库:use 数据库名

- 表相关

增(创建表):

- 记录相关

改(更新数据)

查(单表查询和多表查询)


数据库

理论:存储数据的软件,以表、库的形式将数据永久保存。

常见数据库

关系型数据库:表与表之间的数据存在某种关联关系

  • mysql:免费开源,只是中大型企业,已被oracle公司收购。创始人重写了相同功能的mariaDB
  • oracle:收费闭源,强大的分布式数据库。目前市面性能最强大的昂贵软件。
  • SQLServer:仅支持windows系统的微软软件。
  • DB2:IMB公司开发的收费闭源数据库。常与IMB机器绑定销售。

非关系型数据库:通过key-value存储数据,各个数据之间没有关系,非通用性数据库,具有局限性。MongoDB,redis,memcache等

数据库相关概念

  • 数据:用来记录事物的状态信息,例如:数字、字符、声音、图像等
  • 记录:一条记录用于保存一个事物的典型特征,相当于文件中的一行
  • DBMS:数据库管理软件,即一个套接字服务端软件
  • 数据库服务器:运行有数据库管理软件的计算机
  • 数据库: 数据库是一些关联表的集合。即,存储表的文件夹
  • 数据表: 表是数据的矩阵。看起来像一个简单的表格。本质是一个文件,创建表即创建一个文件
  • 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
  • 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  • 外键:外键用于关联两个表。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

安装MySQL

  1. 官网下载安装包(不带界面,对应系统,稳定版本)
  2. 目录解析顺序 bin - mysqld - mysql - data - 文件夹 - 库 - my-default.ini
  3. 启动mysql服务器  
  4. 添加环境变量:

cmd 内命令:

  • 启动服务器:mysqld
  • 启动客户端 :mysql -h -P -u -p
  • 关闭服务器 :
    tasklist | findstr mysqld        
    taskkill /F /PID 8372

注:windows系统下可以在运行 ->services.msc 查看系统服务,找到mysql相应服务,轻松开启服务端。

MySQL修改密码

修改管理员密码:

cmd >>> mysqladmin -uroot -p旧密码 password'123'

注:如果存在警告报错,可忽视

修改用户密码方式:

  • mysql文件夹内删除user用户文件
  • 重装mysql
  • 开启服务器时跳过授权表,直接进入系统修改授权
  1. 停止原服务
  2. cmd命令启动服务器  
     mysqld --skip-grant-tables
  3. 使用客户端登录,执行修改命令:
    update mysql.user set password = password('123123') where user= 'root' and host = 'localhost'
  4. 刷新权限 flush privileges
  5. 重启验证密码

MySQL 编码设置

mysql随着版本不同,默认编码格式不统一,前期存在gbk等编码格式。于是需要utf8来统一格式、

编码设置步骤(windows):

  1. 查看当前服务器的设置:客户端内 执行 \s
  2. 复制mysql安装目录下的my-default.ini文件,重命名一份副本为 my,ini,用来编写配置文件
  3. my.ini内配置文件内容分为 分区和选项:
    [mysqld]
    character_set_server = utf8
    collation_server = utf8_general_ci
    [mysql]
    default-character-set = utf8
    [client]
    default-character-set = utf8

注:对于5.6版本的修改,服务端只认识下划线设置,而不认识 ‘-’

编码设置步骤(mac):

  1. mac默认无法修改mysql的安装路径:/usr/local (可使用 command + shift +g 前往)
  2. 配置文件名为 my.cnf

原理:mysql在启动时,会自动在安装目录下查找ini文件,找到对应命了的标题加载里面的设置项、

配置文件内,mysql和client的区别:
         mysql是客户端的一种,客户端还包括python客户端,java客户端等。client和mysql同时存在,则首先生效mysql,其他客户端同理。

注:修改了mysqld配置需要重启服务器。

MySQL基本语句

- 库操作

增(创建数据库):CREATE DATABASE 数据库名 charset utf8;

命名规则:

  1. 可以由字母、数字、下划线、@、#、$
  2. 取分大小写
  3. 唯一性
  4. 不能使用关键词,例:creat select
  5. 不能单独使用数字
  6. 最长128位

create database mydb charset utf8;

删:DROP DATABASE 数据库名;

drop database mydb;

alter database mydb charset gbk

show databases;

show create databases mydb;

select database():

选择数据库:use 数据库名

- 表相关

增(创建表):

#语法:
create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
);

'''

#注意:
1. 在同一张表中,字段名是不能相同
2. 宽度和约束条件可选
3. 字段名和类型是必须的

'''
use mydb;
create table t1 (id int,name char) 

drop table 表名

  1. 改表名:
    ALTER TABLE 表名 RENAME 新表名;
    rename table tname1 to tname2
  2. 修改字段名:

    alter table 表名 add | modify | drop | change

          add 跟 列名和类型  (添加字段名)

          modify 跟 列名 和 类型 (修改字段的属性)

          drop 跟列名 (删除字段名)

          change 跟 旧列名 新列名 类型 (重置字段名)

  3. 修改字符编码:
      alter table 表名 default character set gbk

show tables;

show create table t1;   === 查看表详细结构,可添加 \G    show creat table t1\G;

desc t1;   == 简写:desc 表名

复制表

复制表结构+记录 (key不会被复制: 主键、外键和索引)
mysql> create table new_service select * from service;

只复制表结构
mysql> select * from service where 1=2;        //使用条件为假,查不到任何记录。则只复制了表结构
Empty set (0.00 sec)

mysql> create table new1_service select * from service where 1=2;  
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> create table t4 like employees;

- 记录相关

  1. 插入完整数据(顺序插入):
    -1)INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n);
    -2)INSERT INTO 表名 VALUES (值1,值2,值3…值n);
  2. 指定字段插入数据
    INSERT INTO 表名(字段1,字段2,字段3…) VALUES (值1,值2,值3…);
  3. 插入多条数据
    INSERT INTO 表名 VALUES
            (值1,值2,值3…值n),
            (值1,值2,值3…值n),
            (值1,值2,值3…值n);
  4. 插入查询数据
    INSERT INTO 表名(字段1,字段2,字段3…字段n) 
                        SELECT (字段1,字段2,字段3…字段n) FROM 表2
                        WHERE …

delete from 表名 where 条件; (没有条件则删除所有; )

truncate table t1; (重建表,清空所有数据;)

改(更新数据)

  1. 修改单个字段:update 表名 set 字段 = 值 where 条件 ;
  2. 修改多个字段:update 表名 set 字段1=值1,字段2=值2,where条件;

注:可同时修改多个字段 ,⽤逗号隔开。例:列名=值,列名=值...(没有条件则修改全部)

查(单表查询和多表查询)

https://blog.csdn.net/qq_33961117/article/details/82631384
 

猜你喜欢

转载自blog.csdn.net/qq_33961117/article/details/82625643