1、DDL(Data Definition Language):数据定义语句 2、DML(Data Manipulation Language):数据操作语句 3、DQL(Data Query Language):数据查询语句 4、DCL(Data Control Language):数据控制语句(本章未总结)
1、 SQL语句允许单行或者多行书写,以分号结尾。 2、 SQL语句不区分大小写,因为SQL底层是大写实现,所以建议全部使用大写,要么关键字使用大写。 2、使用--进行单行注释(双减号后面需要添加空行再接注释语句),使用/* */进行多行注释
1、创建数据库
-- 直接创建数据库 CREATE DATABASE MY_DATABASE; -- 判断数据库是否存在再创建数据库 CREATE DATABASE IF NOT EXISTS MY_DATABASE; -- 创建数据库并指定字符集 CREATE DATABASE MY_DATABASE CHARACTER SET gbk;2、查看数据库
-- 查看当前存在的数据库列表 SHOW DATABASES; -- 查看某一个数据库信息 SHOW CREATE DATABASE MY_DATABASE;3、修改数据库
-- 修改数据库字符集格式 ALTER DATABASE MY_DATABASE DEFAULT CHARACTER SET gbk;4、删除数据库
DROP DATABASE MY_DATABASE;5、使用数据库
-- 查看正在使用的数据库 SELECT DATABASE(); -- 使用/切换数据库 USE MY_DATABASE;MySQL常用数据类型,建议参考菜鸟教程
1、创建表 MySQL中的表类似C语言结构体,但是成员的定义方式不同,可以理解为:成员名+数据类型+(数据位数),同时,每个成员间使用","分隔。
CREATE TABLE STUDENTS( ID INT(8), NAME VARCHAR(10), AGE INT(3), BIRTHDAY DATE, );2、查看当前数据库的所有表
SHOW TABLES;3、查看表结构
DESC STUDENTS;4、查看表中数据
SELECT * FROM STUDENTS;5、查看创建表的SQL语句
SHOW CREATE TABLE STUDENTS;6、快速创建一个与旧表结构相同的新表
CREATE TABLE STUDENTS_1 LIKE STUDENTS;7、删除表
DROP TABLE STUDENTS_1;8、判断表是否存在再删除表
DROP TABLE IF EXISTS STUDENTS_1;9、修改表结构
-- 修改表名 RENAME TABLE STUDENTS_1 TO STUDENTS_2 -- 修改字符集 ALTER TABLE STUDENTS_2 CHARACTER SET gbk; -- 添加表列 ALTER TABLE STUDENTS_2 ADD SEX CHAR(1); -- 修改表列的类型 ALTER TABLE STUDENTS_2 MODIFY AGE VARCHAR(5); -- 修改列名 ALTER TABLE STUDENTS_2 CHANGE NAME CHINESE_NAME VARCHAR(5); -- 删除列 ALTER TABLE STUDENT_2 DROP SEX;注意事项:插入的值与字段必须对应,个数和类型必须相同,值的数据需要在字段的长度范围内,除了数值类型之外的其他类型需要用引号引起(通常为单引号),插入空值时,可以不写字段,或者插入NULL。
1、插入字段
-- 插入全部字段 INSERT INTO STUDENTS VALUES (201901, 'SQL', 19, '2000-01-01'); -- 插入部分字段 INSERT INTO STUDENTS (ID, NAME, AGE) VALUES (201901, 'SQL', 19);2、蠕虫复制,将旧表数据复制到新表中
-- 根据旧表STUDENT结构创建新表STUDENT_2 CREATE TABLE STUDENTS_1 LIKE STUDENTS; -- 将旧表STUDENT的全部数据复制到新表STUDENT_2中 INSERT INTO STUDENTS_1 SELECT * FROM STUDENTS; -- 将旧表STUDENT的部分数据复制到新表STUDENT_2中 INSERT INTO STUDENTS_1 (ID, NAME, AGE) SELECT ID, NAME, AGE FROM STUDENTS;1、不带条件修改数据,更改列中的全部数据值
UPDATE STUDENTS SET NAME = 'SQL';2、带条件修改数据,根据指定条件修改数据值
UPDATE STUDENTS SET NAME = 'SQL' WHERE ID = 201901;3、带条件修改多列数据
UPDATE STUDENTS SET NAME = 'SQL', AGE = '20' WHERE ID = 201901;1、不带条件删除数据
DELETE FROM STUDENTS_1;2、 带条件删除记录
DELETE FROM STUDENTS WHERE ID = 201901;3、TRUNCATE直接删除整张表,再返回重新构建的一张结构相同的表(DELETE删除数据时,是一条一条删除)
TRUNCATE TABLE STUDENTS_1;1、查询表的所有数据,*代表全部字段
SELECT * FROM STUDENTS;2、查询指定列数据
SELECT ID, NAME FROM STUDENTS;3、别名查询,给列名起一个别名,查询结果显示时使用别名显示
SELECT ID AS 学号, NAME AS 姓名 FROM STUDENTS;4、清楚重复值,在结果显示时不出现重复数据
SELECT DISTINCT NAME, AGE FROM STUDENTS;5、查询结果并进行运算,可以是列数据和数值、列数据与列数据进行运算,但是运算对象都必须是数值类型,运算操作不会改变原表数据值,只是在结果显示时是运算后的数据值
SELECT AGE + 5 FROM STUDENTS; SELECT ID + AGE FROM STUDENTS; -- 给运算之后的列起一个别名 SELECT ID + AGE RANK FROM STUDENTS; -- 显示参与运算的列和运算之后的列 SELECT ID 学号, AGE 姓名, ID + AGE RANK FROM STUDENTS; -- 显示全部列,以及参与运算的列 SELECT *, ID + AGE RANK FROM STUDENTS;