MySQL8-常用命令
人生不像做饭,不能等万事俱备了才下锅
学习的过程中归纳整理MySQL8常用命令,MySQL8的命令与5有些区别,本文所有命令都已经运行通过。
示例表格如下:
查找
MySQL中使用最多的语句
SELECT 语句
e.g. SELECT * from stu;//直接查询整个表格
e.g. SELECT stu.name, stu.id from stu;//可以不按原表的顺序,stu.可以不加
e.g. SELECT name as n from stu as s;//查询的同时起别名,不影响原表;
WHERE 条件语句
e.g. SELECT name from stu where sex = 'man';//查询表中的男生;
GROUP BY 分组
e.g. SELECT sex from stu GROUP BY sex;//查询表中的性别的种类;
HAVING 语句
一般用于分组后查询
ORDER BY 排序语句
e.g. SELECT score from stu ORDER BY score DESC;//按成绩降序排列 ASC正序
修改表格内容
插入内容:
INSERT [INTO] tab_name [(col_name……)] {VALUE | VALUES} expr
e.g. INSERT stu VALUE ('jack','18','90'……) //默认插入多个记录,需要按顺序,如果数量对不上会报错
e.g.2 INSERT stu (name,age) VALUE ('Tom',20)//指定插入数据,两种方式可以都用VALUE
INSERT [INTO] tab_name SET col_name = {expr}
e.g. INSERT stu SET name = 'mick', score = 79;
删除内容:
DELETE FROM tab_name [WHERE condition]
e.g. DELETE FROM stu WHERE name = 'mick';//删除mick的记录
修改内容:
UPDATE [LOW_PRIORITY] [IGNORE] table_name SET col_name1 = expr1, col_name2 = expr2 …… WHERE condition
e.g. UPDATA stu SET score = 85, grade = 2 WHERE name = 'mick';
调整表格结构
注意:添加/删除约束,修改表的结构比如增删列,修改表名列名,调整列的位置或者数据类型。以下操作都是ALTER TABLE
开头,而只是修改表的内容则是INSERT/DELETE/UPDATE
,并且没有TABLE
关键字。
MySQL字段约束
列级约束:
UNSIGNED 无符号
ZEROFILL 自动补零 e.g. 0005
AUTO INCREMENT 自增,需要和主键一起使用
NULL/NOT NULL 默认为NULL,若指定NOT NULL则必须插入值
DEFAULT 设置默认值
表记约束:
PRIMARY KEY 主键约束,自动为NOT NULL,每张表只能存在一个主键
UNIQUR KEY 唯一约束,可以为NULL,保证记录的唯一性,可以存在多个
FOREIGN KEY 外键约束
添加约束
添加主键约束 ALTER TABLE tab_name ADD [CONSTRANT] PRIMARY KEY [index_type] (index_name)
e.g. ALTER TABLE stu ADD PRIMARY KEY (name);//记得带括号
添加唯一约束 ALTER TABLE tab_name ADD [CONSTRANT] UNIQUE (col_name1, col_name2……)//可同时添加多个,记得带括号
添加外键约束 ALTER TABLE tab_name ADD [CONSTRANT] FOREIGN KEY (index_name) REFERENCES ftab_name (index_name)
e.g. ALTER TABLE stu ADD FOREIGN KEY (id) REFERENCES tes (tid);
删除约束
增加/删除默认约束 ALTER TABLE tab_name ALTER [column] col_name {SET DEFAULT expr | DROP DEFAULT}
e.g. ALTER TABLE stu ALTER age SET DEFAULT 0;
删除主键约束 ALTER TABLE tab_name DROP PRIMARY KEY;
删除唯一约束 ALTER TABLE tab_name DROP {INDEX|KEY} index_name;
e.g. ALTER TABLE stu DROP UNIQUE index_name;
修改表格列
添加单列
ALTER TABLE tab_name ADD [COLUMN] col_name column_definition [FIRST|AFTER col_name];
e.g. ALTER TABLE stu ADD province CHAR(10);//也可同时添加多列
删除列
ALTER TABLE tab_name DROP [COLUMN] col_name;
e.g. ALTER TABLE stu DROP money;//也可同时删除多列
修改表格定义
修改表格数据类型和位置
ALTER TABLE table_name MODIFY [COLUMN] col_name col_definition [FIRST | AFTER col_name]
e.g. ALTER TABLE stu MODIFY age TINYINT AFTER name
修改表格的列名
ALTER TABLE tab_name CHANGE [COLUMN] old_col_name new_col_name definition [FIRST | AFTER col_name]
e.g. ALTER TABLE stu CHANGE age grade//同样可以修改数据类型和位置
修改表名
ALTER TABLE tab_name RENAME [TOIAS] new_table_name
e.g. ALTER TABLE stu RENAME student;
RENAME TABLE tab_name TO new_table_name [,tab_name TO new_table_name] ……//同时修改多个表名
😄 MySql的四大特性以及隔离级别