1--SQL的通用语法
2--SQL语句的分类
3--DDL语句
3-1--数据库操作
# 查询所有数据库
show databases;
# 查询当前使用数据库
select database();
# 创建数据库
create database 数据库名
create database if not exists 数据库名; # 不存在时创建,存在则不创建
create database 数据库名 default charset 字符集; # 使用特定字符集
# 删除数据库
drop database if exists 数据库名;
# 使用特定数据库
use 数据库名;
3-2--表操作
# 查询当前数据库所有表
show tables;
# 查询表结构
desc 表名;
# 查询指定表的建表语句
show create table 表名;
# 创建表
create table 表名(
字段1 字段1类型[COMMENT 字段1注释],
字段2 字段1类型[COMMENT 字段2注释],
字段3 字段1类型[COMMENT 字段3注释],
......
字段n 字段n类型[COMMENT 字段n注释]
)[COMMENT 表注释];
# example:
create table tb_user(
-> id int comment '编号',
-> name varchar(50) comment '姓名',
-> age int comment '年龄',
-> gender varchar(1) comment '性别'
-> ) comment '用户表';
3-3--数据类型
MySQL中数据类型包括三类:数值类型、字符串类型和日期时间类型;
数值类型:通过增加 unsigned 来指明使用无符号;
字符串类型:char 的性能会比 varchar 的性能要好。
日期时间类型:
案例:
create table emp(
-> 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 '员工表';
3-4--修改和删除
# 添加字段
alter table 表名 add 字段名 类型(长度) [comment 注释];
# 为 emp 表增加一个新的字段"昵称",字段名为nickname,类型为varchar(20);
alter table emp add nickname varchar(20) comment "昵称";
# 修改数据类型
alter table 表名 modify 字段名 新数据类型(长度);
# 修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释];
# 将 emp 表的 nickname 字段修改为 username,类型为varchar(30)
alter table emp change nickname username varchar(30) comment "用户名";
# 修改表名
alter table 表名 rename to 新表名;
# 将 emp 表的表名修改为employee
alter table tmp rename to employee;
# 删除字段
alter table 表名 drop 字段名;
# 将 emp 表的字段 username 删除;
alter table tmp drop username;
# 删除表
drop table [if exists] 表名;
# 删除指定表,并重新创建该表
truncate table 表名; # 重新创建的是一个空表
4--DML语句
4-1--插入数据
# 给指定字段添加数据
insert into 表名(字段名, 字段名2, ...) values(值1, 值2, ...);
# example
insert into emp(id, workno, name, gender, age, idcard, entrydate) values(1, '001', 'zhangsan', '男', 18, '123123123123123123', '2023-10-31');
# 展示插入后表的结果
select * from 表名;
# example
select * from emp;
# 给全部字段添加数据
insert into 表名 values(值1, 值2, ...);
# 一次插入多条记录,使用,来分隔两条记录
insert into 表名 values(...), (...);
4-2--修改数据
# 指定条件来修改指定数据
update 表名 set 字段1=值1, z字段2=值2, ..., where 条件;
# example
update emp set name = 'lisi', age = 19 where id = 1;
# 不指定条件来修改所有数据
update 表名 set 字段1=值1, z字段2=值2, ...;
# update emp set age = 20;
4-3--删除数据
# 删除指定数据
delete from 表名 where 条件;
# 删除全部数据
delete from 表名;