数据库和表的基本操作
登录MySQL数据库
MySQL -h hostname -u username -p
创建数据库
Create database 数据库名称
查询数据库
Show database
查询某个数据库
Show create database 数据库名称
修改数据库
Alter database 数据库名称 default character set 编码方式 collate 编码方式_bin
删除数据库
Drop database 数据库名称
创建数据表
Create table 表名{字段名1 数据类型【约束条件】,字段名2 数据类型【约束条件】,}
查看数据表
Show create table 表名
查询表的字段信息
Desc 表名
修改表名
Alter table 旧表名 rename 新表名
修改字段名
Alter table 表名 change 旧字段名 新字段名 新数据类型
修改字段数据类型
Alter table 表名 modify 字段名 数据类型
添加字段
Alter table 表名 add 新字段名 数据类型【约束条件】
删除字段
Alter table 表名 drop 字段名
修改字段的排列顺序
Alter table 表名 modify 字段名1 数据类型 flrst/after 字段名2
删除数据表
Drop table 表名
单字段主键
字段名 数据类型 primary key
多字段主键
Primary key (字段名1,字段名2)
非空约束
字段名 数据类型 not null
唯一约束
字段名 数据类型 unique
默认约束
字段名 数据类型 default 默认值
设置表的字段值自动增加
字段名 数据类型 auto_increment
添加、更新与删除数
为表中所有字段添加数据
Insert into 表名(字段名1,字段名2) values(值1,值2)
同时添加多条记录
Insert into 表名(字段名1,字段名2) values(值1,值2),(值1,值2)
更新数据
Update 表名 set 字段名1=值1【,字段名2=值2】 【where 条件表达式】
删除数据
Delete from 表名 【where 条件表达式】
单表查询
简单查询
Select * |字段名1,字段名2,字段名3 From 表名 Where 条件语句 Group by 字段名 【having 条件表达式2】 Order by 字段名 【asc|desc】Limit 【offset】记录数
带in关键字的查询
Select *|字段名1,字段名2 from 表名 where 字段名 【not】 in (元素1,元素2)
带between and 关键字查询
Select *|字段名1,字段名2 from 表名 where 字段名 【not】between 值1 and 值2
空值查询
Select *|字段名1,字段名2 from where 字段名 is 【not】null
带distinct关键字查询
Select distinct 字段名 from 表名
Distinct 关键字用于多个字段
Select distinct字段名1,字段名2 from 表名
带like关键字的查询
Select *|字段名1,字段名2 from 表名 where 字段名 【not】like “匹配条件”
带or关键字的多条件查询
Select *|字段名1,字段名2 from 表名 where 条件表达式1 or 条件表达式2
带and关键字的条件查询
Select *|字段名1,字段名2 from 表名 where 条件表达式1 and 条件表达式2
高级查询
Count 返回某列的行数 Sum 返回某列的和 Avg 返回某列的平均值 Max 返回某列的最大值 Min 返回某列的最小值
对查询结果查询
Select 字段名1,字段名2 from 表名 order by 字段名1 asc|desc,字段名2 asc|desc
分组查询
Select 字段名1,字段名2 from 表名 group by 字段名1,字段名2 having 条件表达式
使用limit限制查询结果的数量
Select 字段名1,字段名2 from 表名 limit 【offset】记录数
为表取别名
Select * from 表名 as 别名
为字段取别名
Select 字段名 as 别名,字段名 as 别名 from 表名
多表操作
添加外键约束
Alter table 表名 add constraint FK_ID foreign key(外键字段名称) REFERENCES 外表表名(主键字段名)
删除外键约束
Alter table 表名 drop foreign key 外键名
添加数据(外键约束后)
为两个表添加数据,就需要先为主表添加数据。
删除数据(外键约束后)
删除关联表的数据时,一定要先删除从表中数据,然后再删除主表中的数据。
连接查询(交叉连接)
Select * form 表1 CROSS JOIN 表2
内连接查询
SELECT 查询字段 FROM 表1 [INNER] JOIN 表1.关系字段=表2.关系字段 WHERE 条件
外连接查询
Select 所查字段 from 表1 left|right [outer] join 表2 on 表1.关系字段=表2.关系字段 where 条件
复合条件连接查询
复合条件连接查询就是再连接查询的过程中,通过添加过滤条件来限制查询结果,使查询结果更加精确。
子查询
子查询是指查询语句嵌套再另一个查询语句内部的查询。
带EXISTS关键字的子查询
EXISTS关键字后面的参数可以是任意一个子查询,这个子查询的作用相当于测试,它不产生任何数据,只返回TRUE或FALSE,当返回值为TRUE时,外层查询才会执行
带AND关键字的子查询
AND关键字表示满足其中任意一个条件,它允许创建一个表达式对子查询的返回值列表进行比较,只要满足内层子查询中的任意一个比较条件,就返回一个结果作为外层查询条件。
带ALL关键字的子查询
ALL关键字与ANY有点类似,只不过带ALL关键字的子查询返回的结果需同时满足所有内层查询条件。
带比较运算符的子查询
子查询中还可以实用其他的比较运算符。
事务管理
开启事务
Start transaction;
提交事务
Commit;
取消事务
Rollback;
(只能针对未提交的事务进行回滚操作。)
数据库的高级操作
设置事务的隔离级别
Set session transaction isolation level 隔离级别;
备份单个数据库
Mysqldump - uusername -ppassword dbnam [tbname1 [tbname2...]]>filename.sql
备份多个数据库
Mysqldump - uusername -ppassword --database dbname[dbname2 dbname3...]filename.sql
备份所有数据库
Mysqldump -uusername -ppassword --all -databases>filename.sql
数据的还原
MySQL - uusername -ppassword [dbname]<filename.sql
备注:参考文献:《MySQL数据库入门》 清华大学出版社
不包含以下内容:
1.函数(除了常见的5个以外,其他没做补充) (课本P117)
2.没有标明truncate关键字的使用(作用效果删除) (课本P84)
3.没有对索引的内容进行归纳 (课本P51)
4.数据类型没有进行归纳 (课本P33)
5.MySQL相关命令列入 ? ? clear \c connect \r (课本P25)
6.添加外键的约束的参数说明(课本P124)
7.事务的存储应用及其相关相关资料(课本P174)
8.视图的应用及其相关资料(课本P193)
9.用户管理——用户的创建删除修改及其权限管理(课本P204)