1.DDL(对数据库和表的操作)
1.查询所有数据库:SHOW DATABASES;
2.创建数据库:CREATE DATABASE 库名;
3.创建数据库(常用,加一个判断是否存在语句):CREATE DATABASE IF NOT EXISTS 库名;
4.删除数据库:DROP DATABASE 库名;
5.删除数据库(常用,加一个判断是否存在语句):DROP DATABASE IF NOT EXISTS 库名;
6.使用数据库:USE 库名;
7.查看使用的数据库:SELECT DATABASE();
表:
8.查询当前数据库中所有的表名:SHOW TABLES;
9.查询表的结构:DESC 表名;
10.创建表:CREATE TABLE 表名(
字段1 数据类型1,字段2 数据类型2
);
11.删除表:DROP TABLE 表名;
12.修改表名:ALTER TABLE 表名 RENAME TO 新的表名;
13.添加表的列:ALTER TABLE 表名 ADD 列名 数据类型;
14.修改数据类型:ALTER TABLE 表名 MODIFY 新数据类型;
15.修改列名和数据类型:ALTER TABLE 表名 CHANGE 列名 新列名 新数据结构;
16.删除列:ALTER TABLE 表名 DROP 列名;
2.DML(对表的数据进行增删改)
1.指定列添加数据:INSERT INTO 表名 (列名1,列名2,...)VALUES(值1,值2,...) ;
2.全部列添加数据:INSERT INTO 表名 VALUES(值1,值2,...);
3.批量添加数据:INSERT INTO 表名 (列名1,列名2,...)VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...) ;
INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...);
4.删除数据:DELETE FROM 表名 【WHERE 条件】;
5.修改表的数据:UPDATE 表名 SET 列名1=值1,列名2=值2,... 【WHERE 条件】;
3.DQL(对表中数据进行查询)
1.基本查询:SELECT 字段 FROM 表名 【WHERE 条件, GROUP BY 分组,HAVING 分组后条件,ORDER BY 排序字段,LIMIT 分页限定】;
2.条件查询:SELECT 字段 FROM 表名 WHERE 条件;
注:判断是不是null 不能用=null 应该使用 is not null 或者is null;like模糊查询可以用来判断值是不是包含某个字符“%关键字%”;
3.排序查询:SELECT 字段 FROM 表名 ORDER BY 排序字段1【方式1】,排序字段2【方式2】...; ASC升序(默认),DESC降序。排序优先级从左向右。
4.聚合函数:
5.分组查询:SELECT 字段 FROM 表名 【WHERE 条件】 GROUP BY 分组字段名【HAVING 分组后再进行条件过滤】
6.分页查询:SELECT 字段 FROM 表名 LIMIT 起始索引,查询条目数;
MYSQL用limit
Orale用rownumber
SQL server用top
4.DCL(对数据库的权限控制)
5.约束
自动增长:auto_increment(必须是数字类型而且有唯一约束或主键约束)
可以在创建表时添加,直接写在在数据类型后面就可。
建表后在进行添加时如下,
非空约束:(1)添加约束 ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL;
(2)删除约束 ALTER TABLE 表名 MODIFY 字段名 数据类型;
唯一约束:(1)添加约束 ALTER TABLE 表名 MODIFY 字段名 数据类型 UNIQUE;
(2)删除约束 ALTER TABLE 表名 DROP INDEX 字段名;
主键约束:(1)添加约束 ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
(2)删除约束 ALTER TABLE 表名 DROP PRIMARY KEY;
默认约束:(1)ALTER TABLE 表名 ALTER 列名 SET DEFAULT 默认值;
(2)删除约束 ALTER TABLE 表名 ALTER 列名 DROP DEFAULT;
外键约束:(1)添加约束 CREATE TABLE 表名(
列名 数据类型,
列名 数据类型,....
【CONSTRAINT】[外键名称] FOREIGN KEY(外键列名)REFERENCES 主表(主表列名)
);
(2)添加约束 ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键列名)REFERENCES 主表(主表列名);
(3)删除约束 ALTER TABLE 表名 DROP FPREIGN KEY 外键名称;
6.多表查询
隐式内连接:SELECT 字段列表 FROM 表1,表2 WHERE 条件;
显式内连接:SELECT 字段列表 FROM 表1 【INNER】 JOIN 表2 ON 条件;
左外连接:SELECT 字段列表 FROM 表1 LEFT 【OUTER】 JOIN 表2 ON 条件;
右外连接:SELECT 字段列表 FROM 表1 RIGHT 【OUTER】 JOIN 表2 ON 条件;
7.子查询
单行单列:SELECT 字段列表 FROM 表 WHERE 字段名 = (子查询);作为条件值
多行单列:SELECT 字段列表 FROM 表 WHERE 字段名 in(子查询);作为条件值
多行多列:SELECT 字段列表 FROM (子查询)WHERE 条件; 作为虚拟表
8.事务
开启事务:START TRANSACTION 或者 BEGIN;
提交事务:COMMIT;
回滚事务:ROLLBACK;
9.数据库设计(一对一,一对多,多对多)
1.如何实现1对N
假设A表中的一条信息对应B表中的多条信息,则设置A表为主表,B表为附表,在B表创建时可以建立外键,或者单独使用语句创建外键。
2.如何实现1对1
假设A表的一条信息对应B表的一条信息,则可以在A表中整一列(唯一约束)在外键到B表里,以B表为主表,A表为附表。
3.如何实现N对N
假设A表中N条信息对应B表中N条信息,可以设置一个中间表C,找两个列,一个外键A表,一个外键B表,A和B为主表,C是他俩的附表。