1.数据库操作
创建数据库:create database 数据库名;
查看数据库中的所有数据库:show databases
查看某个数据库的定义的信息:show create database 数据库名;
删除数据库:drop database 数据库名;
切换/使用数据库:use 数据库名
2.表操作
create table 表名(字段名 类型(长度) 【约束】,字段名 类型(长度) 【约束】);
主键约束:primary key 要求被修饰的字段:唯一 和 非空
唯一约束:unique 要求被修饰的字段:唯一
非空约束:not null 要求被修饰的字段:非空
查看数据库中所有的表: show tables
查看表的结构: desc 表名
删除表: drop table 表名
修改表:alter table 表名 add 列名 类型(长度) 【约束】; 修改表添加列
alter table 表名 modify 列名 类型(长度) 【约束】 修改表修改列的类型长度及约束
alter table 表名 change 旧列名 新列名 类型(长度) 【约束】 修改表修改列名
alter table 表名 drop 列名 修改表删除列
rename table 表名 to 新表名 修改表名
alter table 表名 charcter set 字符集 修改表的字符集
3.插入操作
insert into 表 (列名1,列名2,..) values (值1,值2,..) 向表中插入某些列
insert into 表 values (值1,值2,..) 向表中所有列插入
4.更新操作
update 表名 set 字段名=值 ,字段名=值..
update 表名 set 字段名=值 ,字段名=值.. where 条件
5.删除操作
delete from 表名 where 条件
注:delete from 表名 和truncate table 表名 的区别
delete 一条一条的删除,不清空auto_increment 记录数,delete 删除的数据,如果在一个事务中可以找回
truncate 直接将表删除,重新建表,auto_increment 记录数将置为0,从新开始。truncate删除的数据是无法找回的。
6.查询操作
select distinct *|字段,字段.. from 表 where 查询条件
group by 分组字段 having 分组条件
order by 排序字段 asc(升序)|desc(降序)
7.主表、从表以及外键
外键的特点:从表外键的值是对主表主键的引用;从表外键类型必须与主表主键类型一致。
声明外键约束语法:
alter table 从表 add [constraint] [外键名称] foreign key (从表外键字段名) references 主表 (主表的主键)
[外键名称] 用于删除外键约束的,一般建议“_fk” 结尾
alter table 从表 drop foreign key 外键名称
8.多表查询
交叉连接查询(基本不会使用,得到的是两个表的乘积):select * from A,B
内连接查询(使用的关键字 inner join inner可以省略)
隐式内连接:select * from A,B where 条件
显示内连接:select * from A inner join B on 条件
外连接查询(使用的关键字 outer join outer 可以省略):
左外连接:select * from A left outer join B on 条件
右外连接:select * from A right outer join B on 条件
子查询:
一条select 语句结果作为另一条select语法的一部分(查询结果、查询条件、表等)
例如:select * from products where category_id = {select cid from category where cname = '电器'}