MySQL之DDL(数据定义语言)

  1. 安装MySQL
    MySQL 8.0安装包下载,提取码:2xyv
    Windows下安装MySQL
    CentOS 7 通过 yum 安装 MariaDB
    远程终端工具Xshell安装包下载,提取码:eczh
    以下操作均在Linux上!!!
  2. 连接服务器
    输入:mysql -h 127.0.0.1 -p 3306 -u root -p
    注意:如果没有写 -h 127.0.0.1 默认是连接本地
    如果没有写 -P 3306 默认是连接3306端口号
    -p 后要输入密码,如果没有 -p 表示直接登录
    输出:MySQL之DDL(数据定义语言)_第1张图片
  3. 库操作
    3.1 创建数据库
    语法:CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] … ]
    create_specification:
    [DEFAULT] CHARACTER SET charset_name
    [DEFAULT] COLLATE collation_name
    说明:大写的表示关键字
    [ ] 是可选项
    CHARACTER SET:指定数据库采用的字符集
    COLLATE:指定数据库字符集的校验规则
    3.2 创建数据库案例
    创建名为 db1 的数据库:
    MySQL之DDL(数据定义语言)_第2张图片
    创建一个使用 utf8 字符集的 db2 数据库:
    MySQL之DDL(数据定义语言)_第3张图片
    创建一个使用 utf8 字符集,并带校对规则的 db3 数据库:
    在这里插入图片描述
    3.3 查看数据库
    语法:SHOW DATABASES;
    MySQL之DDL(数据定义语言)_第4张图片
    3.4 显示建库语句
    语法:SHOW CREATE DATABASE db_name;
    MySQL之DDL(数据定义语言)_第5张图片
    说明:
    MySQL 建议我们关键字使用大写,但是不是必须的
    数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
    /* !40100 DEFAULT CHARACTER SET utf8 */ 这个不是注释,表示当前 MySQL 版本大于4.01版本,就执行这句话
    3.5 修改数据库
    说明:对数据库的修改主要指的是修改数据库的字符集,校验规则
    语法:ALTER DATABASE db_name
    [alter_spacification [,alter_spacification]…]
    alter_spacification:
    [DEFAULT] CHARACTER SET charset_name
    [DEFAULT] COLLATE collation_name
    修改数据库实例:将 db3 数据库的字符集改成 gbk:
    MySQL之DDL(数据定义语言)_第6张图片
    3.6 删除数据库
    语法:DROP DATABASE [ IF EXITS ] db_name;
    说明:执行删除之后的结果:
    数据库内部看不到对应的数据库
    对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
    此过程不可逆,需谨慎操作!!!
    MySQL之DDL(数据定义语言)_第7张图片
    3.7 数据库的备份与恢复
    备份和恢复都是在 bash 下执行,不是在 MySQL 下执行!!!
    输入 quit 或者 exit 即可退出 MySQL shell!
    ① 备份:
    语法:mysql dump [-p3306] -u root [-p 密码] -B 库名 > 备份存储的文件路径
    实例:将 db2 库备份到文件
    在这里插入图片描述
    MySQL之DDL(数据定义语言)_第8张图片
    此时在用户的home目录下多了一个名为 db2.sql 的文件,同时也可以cat它的内容,其实把我们整个创建数据库,建表,导入数据的语句都会装载到这个文件中
    ② 恢复(还原):
    此过程需要先在MySQL shell下新建好一个数据库!!!
    语法:mysql -u root [-p 密码] 库名 < 之前备份到的文件名
    在这里插入图片描述
    问题:如果备份的不是整个数据库而是其中的某几张表,应该怎么做?
    mysqldump -u root [-p 密码] 库名 表名1 表名2 > 备份存储的文件路径
    (如果备份一个数据库时,没有带上-B参数,备份表不需要)
  4. 表操作
    4.1 创建表
    (创建表之前先要使用数据库)
    语法:USE db_name;(注意没有关键字DATABASE!!!)
    在这里插入图片描述
    建表语法:CREATE TABLE table_name (field1 datatype, field2 datatype,field3 datatype) character set 字符集 collate 校验规则 engine 存储引擎;
    说明:
    field:列名
    datatype:列的类型
    character set:字符集,如果没有指定字符集,则以所在库的字符集为准
    collate:校验规则,如果没有指定校验规则,则以所在库的校验规则为准
    4.2 创建表案例
    MySQL之DDL(数据定义语言)_第9张图片
    说明:
    不同的存储引擎,创建表的文件不一样
    users 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:
    users.frm:表结构
    users.MYD:表数据
    users.MYI:表索引
    4.3 查看建表语句
    MySQL之DDL(数据定义语言)_第10张图片
    4.3 查看表结构
    (表结构和建表语句是不一样的!)
    语法:DESC table_name;
    MySQL之DDL(数据定义语言)_第11张图片
    4.4 修改表结构(针对的是属性列)
    修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎,添加字段,删除字段等等
    在这里插入图片描述
    ① 在users表添加一个字段,用于保存图片路径
    语法:ALTER TABLE table_name ADD (column datatype [DEFAULT expr][,column datatype]…);
    MySQL之DDL(数据定义语言)_第12张图片
    ② 删除password列
    语法:ALTER TABLE table_name DROP (column);
    注意:删除字段一定要小心,删除字段及其对应的列数据都没了
    MySQL之DDL(数据定义语言)_第13张图片
    ③ 修改name,将其长度改成60
    语法:ALTER TABLE table_name MODIFY (column datatype [DEFAULT expr][,column datatype]…);
    MySQL之DDL(数据定义语言)_第14张图片
    ④ 修改表名为employee
    语法:ALTER TABLE table_name RENAME [TO] 新名称;或者RENAME TABLE table_name [TO] 新名称;
    MySQL之DDL(数据定义语言)_第15张图片
    ⑤ 将name列修改为xingming(新字段需要完整定义)
    语法:ALTER TABLE table_name CHANGE 旧字段名 新字段名 类型;
    MySQL之DDL(数据定义语言)_第16张图片
    MODIFY主要是用来更换字段的数据类型,而CHANGE是用来更改原字段名称(及字段类型)的
    4.5 删除表
    语法:DROP TABLE [IF EXISTS] tbl_name [, tb2_name] …
    删除employee表
    MySQL之DDL(数据定义语言)_第17张图片
    总结:上述都是数据定义语言(DDL):CREATE,DROP,ALTER
    关于数据库:创建数据库,删除数据库,修改数据库(字符集、校验规则)
    关于数据表:创建数据表,删除数据表(DROP是全删,连表带数据全删),修改数据表结构(添加或删除字段、字段名乘,字段大小,字段类型,修改表的字符集及存储引擎等)

你可能感兴趣的:(MySQL)