数据库MySQL
SQL
1注意事项
1.SQL语句可以单行或多行书写,以分号结尾。
2.SQL语句可以使用空格/缩进来增强语句的可读性。
3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
4.注释:单行注释:- - 注释内容或#注释内容(MySQL特有)多行注释:/* 注释内容*/
SQL分类
分类 | 全称 | 说明 |
DDL | Data Definition Language | 数据定义语言,用来定义数据库对象(数据库,表,字段) |
DML | Data Manipulation Language | 数据操作语言,用来对数据库表中的数据进行增删改 |
DQL | Data Query Language | 数据查询语言,用来查询数据库中表的记录 |
DCL | Data Control Language | 数据控制语言,用来创建数据库用户、控制数据库的访问权限 |
DDL-数据库操作
查询
查询所有数据库
SHOW DATABASES ; #查询所有数据库
查询当前数据库
SELECT DATABASE(); #查询当前数据库
创建
CREATE DATABASE shujuku; #创建了一个名叫shujuku 的数据库
CREATE DATABASE if not exists shujuku;
#添加了一个 if not exists 可选项 如果不存在这个数据库就创建,如果存在则不创建
删除
DROP DATABASE shujuku; #删除名叫 shujuku 的数据库
DROP DATABASE if exists shujuku; #如果存在就删除 否则不删除
使用
USE nihao; #使用数据库
DDL-表操作-查询
查询当前数据库所有表
SHOW TABLES; #查看当前数据库所有表
查询表结构
DESC 表名;
查询指定表的建表语句
SHOW CREATE TABLE 表名;
DDL-表操作-创建
CREATE TABLE 表名(
字段1 字段1类型 commend
字段2 字段2类型 commend
) 注释;
创建一个名字为biaoge的工作表 要求
注释为'编号' 名称为id 类型为int
注释为'姓名' 名称为name 类型为varchar 长度为50
注释为'年龄' 名称为age 类型为int
注释为'性别' 名称为gender 类型为varchar 长度为1
表的注释为 '用户表'
CREATE TABLE biaoge( id INT COMMENT '编号', name VARCHAR (50) COMMENT '姓名', age INT COMMENT '年龄', gender VARCHAR(1) COMMENT '性别' ) COMMENT '用户表';
表创建好后需要查看表
SHOW TABLES; #查看所有表
如果想要查看表有哪些字段利用 DESC 表名 来查看
DESC biaoge; #查看名为biaoge 的字段
如果觉得还不够详细 利用 SHOW CREATE TABLE 表名; 来查看
SHOW CREATE TABLE biaoge; #查看名为 biaoge 的表结构
我们可以看到 有一些东西是我们创建表的时候没有呈现的
ENGINE=InnoDB 存储引擎,在后面会介绍到
DEFAULT CHARSET=utf8mb4 默认的字符集
COLLATE=utf8mb4_0900_ai_ci 排序规则为默认的
DDL-表操作-数据类型
char 定长字符串 char的性能比较好 适合存储短的
varchar 变长字符串 varchar 的性能比较差
案例练习
CREATE TABLE yuangongbiao(
id INT COMMENT '编号',
workno VARCHAR(10) COMMENT '工号',
name VARCHAR(10) COMMENT '姓名',
gender CHAR(1) COMMENT '性别', #定长字符串存储
age TINYINT UNSIGNED COMMENT '年龄', #正数不能是负数
idcard CHAR(18) COMMENT '身份证号',
entrydate DATE COMMENT '入职时间'
)COMMENT '员工表';
DDL-表操作-修改
添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];
案例
为yuangongbiao表增加一个新的字段"昵称”为nickname,类型为varchar(20)
ALTER TABLE yuangongbiao ADD nickname VARCHAR(20); #在yuangongbiao中添加了一个名称为nickname 字段长度为 变长字符串20
案例
将yuangongbiao表的nickname字段修改为username,类型为varchar(30)
#将yuangongbiao中的nickname修改为username为变长字符串长度为30 ALTER TABLE yuangongbiao CHANGE nickname username VARCHAR(30);
利用DESC 表名 查看表结构
删除字段
ALTER TABLE 表名 DROP 字段名;
将yuangongbiao的字段usename删除
ALTER TABLE yuangongbiao DROP username;#将yuangong表中的username字段删除
修改表名
ALTER TABLE 表名 RENAME TO 新表名;
将yuangongbiao修改为ygb
ALTER TABLE yuangongbiao RENAME TO ygb;#将yuangongbiao修改为ygb
DDL-表操作-删除
删除表