一.DDL (数据定义语言): 定义和管理数据对象, 如数据库,数据表等 常见的命令: CREATE、DROP、ALTER1.数据库 (1).创建数据库:create database需要创建的数据库名称; (2).删除数据库:drop database 需要删除的数据库名称; (3).查看数据库:show databases; (4).选择数据库: use 数据库名;(5)查询创建的数据库结构: 方式一: describe 表名 或 desc 表名 方式二:show create table 表名2.数据表 (1).创建数据库表:create table 表名( 字段名 字段类型 [属性][索引][注释],……)[表类型][表字符集]; 注意:”[ ]“包含的内容可以省略; " ` " 当前符号位反引号,用于区别MySQL保留字与普通字符而引入;
添加注释要用comment在注释前类型后;
(2).删除表名:alter table 旧表名 rename as 新表名; (3).修改字段:alter table modify 字段名 列类型[属性] ;alter table change 旧字段名 新字段名 列类型[属性]; (4).删除字段:aler table 表名 drop 字段名; (5).添加字段名:alter table 表名 add 字段名 列类型[属性]; (6).删除表:drop table 表名; (7).约束的添加; 添加非空约束 alter table 表名 modify test_student char(10) not null; 删除非空约束 添加唯一约束 alter table 表名 add unique(表字段名,字段,字段,字段); 添加主键约束 alter table 表名 add primary key(表的字段名,字段,字段); 添加外键约束 alter table 表名 add constraint N1 foreign key (表字段名) references 父表(父表字段名); (8).约束的删除: 删除not null约束 alter table 表名 modify 列名 类型; 删除unique约束 alter table 表名 drop index 唯一约束名; 删除primary key约束 alter table 表名 drop primary key; 删除foreign key约束 alter table 表名 drop foreign key 外键名二.DML (数据操作语言): 用于操作数据库对象中所包含的数据 常见的命令: INSERT、UPDATE、DELETE 1.增加数据: insert into 表名(字段名……) values/value (值……)(值……)……; INSERT INTO SELECT 语句从一个表复制数据, 然后把数据插入到一个已存在的表中。 目标表中任何已存在的行都不会受影响。2.修改数据: update 表名 set 字段名1=值1.…… where 条件; 3. 条件where = 等于; <>或!= 不等于;> 大于;< 小于; >= 大于等于; <= 小于等于;between 在某个范围之间 ; and 并且;or 或; not 非; 4.删除数据: delete from 表名 where条件;不清空计数器;rruncate table 表名; 清空某一张表内的全部数据,重置自增计数器; 三.DQL (数据查询语言): 用于查询数据库数据 常见的命令: SELECT1.查询一个表的所有数据: select * from 表名 where 条件; 注意; ” * “为 全部字段; 2.别名: select 表名.字段名 as `字段别名` from 表名 sa `表别名`; 注意:AS”可忽略不写,“AS”的功能如下: 给字段取一个新别名; 给表取一个新别名; 把经计算或总结的结果用另外一个新名称来代替。 3.去掉SELECT查询返回的记录结果中重复的记录(所有返回列的值都相同), 只返回一条。 select distinct 字段名 from 表名; 4.模糊查询; select * from 表名 where 字段 like 条件; 注意:在WHERE子句中,使用LIKE关键字进行模糊查询; 与“%”一起使用,表示匹配0或任意多个字符; 与“_”一起使用,表示匹配单个字符。 5.匹配: select * from 表名 where 字段 in (值); 注意; 查询的字段的值,至少与IN 后的括号中的一个值相同; 多个值之间用英文逗号隔开。 6.null 值查询 select * from 表名 where 字段 is null | is not null; 注意:NULL代表“无值”; 区别于零值0和空符串; 只能出现在定义允许为NULL的字段; 须使用 IS NULL 或 IS NOT NULL 比较操作符去比较。 7.排序: select * from 表名 order by 字段名 desc/asc huaving 条件; 注意: ORDER BY 表示对SELECT语句查询得到的结果,按字段名进行排序; DESC表示排序的顺序为降序,ASC表示排序的顺序为升序; “[ ]”包含的内容可以省略 8.分页 select * from 表名limit[n,m]; 注意; LIMIT关键字是MySQL特有关键字; LIMIT限制SELECT返回结果的行数; n 表示第一条记录的偏移量,m 表示显示记录的数量; “[ ]”包含的内容可以省略。
9.链接查询; select * from 表名1 left/reght/inner join 表二 on 条件; 注意: left join 从左表(表1)中返回所有的记录, 即便在右(表2)中没有匹配的行。
right join 从右表(表二)中返回所有的录,便在左(表一)中没有匹配的行。
inner join 在表中至少一个匹配时,则返回记录。
10. union
union是求两个查询的并集。
union合并的是结果集,不区分来自于哪一张表, 所以可以合并多张表查询出来的数据。 注意: 1列名不一致时,会以第一张表的表头为准,并对其栏目。 2会将重复的行过滤掉。 3如果查询的表的列数量不相等时,会报错。 4在每个子句中的排序是没有意义的,mysql在进行合并的时候会忽略掉。 5如果子句中的排序和limit进行结合是有意义的。 6可以对合并后的整表进行排序 11.union all union all 是求两个查询的并集,但是不会把重复的过滤掉,而是全部显示出来。