MySQL详谈(二)------操作语法


二: 操作


1. 进入cmd命令行工具中

mysql -u 用户名 -p (敲回车)

Enter password: 输入密码

2. 显示数据库

show databases;(在cmd中, 每一个语句最好都要加;分号)

3. 判断是否存在数据库student, 有的话先删除

drop database if exists student;

4. 创建数据库student

create database student;

5. 删除数据库student

drop database student;

6. 使用该数据库

use student;

7. 显示数据库中的表

show tables;

8. 先判读表stu是否存在, 有的话先删除

drop table if exists stu;

9. 创建表

create table stu(

id int  primary key auto_increment, # 设置为主键, 自动增加

name varchar(50),

sex varchar(20));

10. 删除表

drop table stu;

11. 是否创建成功

show tables;

12. 查看表的结构

describe stu;

# 可以简写成 desc stu;

      查看表的详细结构

show create table <stu\G>

# 如果不加'/G'参数, 显示的结果可能非常混乱, 加上之后, 可使显示结果更加直观

13. 插入数据

insert into stu values(null, '李四', '男');

14. 查询表中的数据

select * from stu;

15. 查询指定的数据

select id, name from stu;

16. 修改某一条数据

# WHERE: 后面跟的是筛选条件

# 也可以加 and  or 

update stu set sex='女' where id=1 and(or) 条件;

17. 删除数据

delete from student where id=1;

18. 修改表名

alter table 旧表名 rename 新表名;

19. 修改字段的数据类型

alter table 表名 modify 字段名 数据类型;

20. 修改字段名

alter table 表名 change 旧字段名 新字段名 新数据类型;

21. 在表的第一列添加一个字段

alter table 表名 add 新字段名 数据类型 first;

22. 在表的指定列之后添加一个字段

alter table 表名 add 新字段名 数据类型 after 指定的字段名;

23. 删除字段

alter table 表名 drop 字段名;

24. 修改字段的排列位置(表第一个字段|在...之后)

alter table 表名 modify 要修改的字段 数据类型 first|after 字段2;

25. 修改字段为表的第一个字段

alter table 表名 modify 要修改的字段 数据类型 first;

26. 修改字段到表的指定列之后

alter table 表名 modify 要修改的字段 数据类型 after 字段名

27. 查看系统支持的存储引擎

show engines;

28. 更改表的存储引擎

alter table 表名 engine=更改后的存储引擎名;

29. 创建外键

constraint 外键名 foreign key(字段名) references 主表名(主键列);

MySQL详谈(二)------操作语法

29. 删除表的外键约束

alter table 表名 drop foreign key 外键约束名;

30. 非空约束

not null; 在创建表的时候在你想要的地方添加

MySQL详谈(二)------操作语法

MySQL详谈(二)------操作语法

31. 使用唯一性约束

constraint 约束名 unique 字段名;

MySQL详谈(二)------操作语法

或者

字段名 数据类型 unique;

MySQL详谈(二)------操作语法

unique 和 primary key的区别:

一个表中可以有多个字段声明为unique, 但只能有一个primary key, 同时, 声明primay key 的列不允许有空值, 但是声明为unique的字段允许空值null的存在

32. 使用默认约束

字段名 数据类型 default 默认值;

MySQL详谈(二)------操作语法

33. 删除没有被关联的表(可以删除多个)

deop table if exists 表名, 表名1,表名2

34. 删除被其他表关联的主表

MySQL详谈(二)------操作语法

MySQL详谈(二)------操作语法

MySQL详谈(二)------操作语法

MySQL详谈(二)------操作语法

MySQL详谈(二)------操作语法

35. 范围查询

SELECT * FROM 表名 WHERE 字段名 BETWEEN 最小值 AND 最大值;

SELECT *FROM 表名 WHERE 字段  IN (指定值1,指定值2..);

 SELECT * FROM 表名 WHERE 字段 LIKE  '%(任意长度字符)|_(一个下划线表示一个字符)' ;

# z% 以z开头  %z 以z结尾  %z% 包含z

36. 条件查询

SELECT * FROM 表名 WHERE 条件1 AND 条件2 AND 条件3...;

SELECT * FROM 表名 WHERE 条件1 OR 条件2 OR 条件3....;

37. 查询结果不重复

SELECT DISTINCT 字段名 FROM 表名;

38. 排序

SELECT * FROM 表名 ORDER BY 字段1,字段2  ASC(升序)|DESC(降序);
39. 先根据字段1指定方向排序,再根据字段2指定方向排序

SELECT * FROM 表名 ORDER BY 字段1 排序方向,字段2 排序方向;

40. 分组查询,合并结果

SELECT s_id,GROUP_CONCAT(字段) AS 别名 FROM 表名 GROUP BY 字段 HAVING 限定条件;

41. 使用函数查询

SELECT 字段1,函数(字段) AS 别名 FROM 表名  条件;
MySQL详谈(二)------操作语法

42. 内连接语法结构

 SELECT 字段1,字段2... FROM 表1 INNER JOIN 表2 ON 条件;

43. 左外连接语法结构

 SELECT 表1.字段1,字段2,字段3 FROM 表1 LEFT OUTER JOIN 表2 ON 条件;
44. 右外连接语法结构

SELECT 表2.字段,字段1,字段2...FROM 表1 RIGHT OUTER JOIN 表2 ON 条件;

45. 子查询语法结构

SELECT 字段1,字段2...FROM 表 WHERE 条件1 AND (子查询ANY|ALL|EXISTS|IN)(子查询语句);

46. 创建索引语法查询

唯一索引: UNIQUE

全文索引: FULLTEXT(只有MyISAM存储引擎支持FULLTEXT索引, 并且只为CHAR, VARCHAR, TEXT列)

MySQL详谈(二)------操作语法

创建空间索引: SPATIAL(必须在MyISAM类型的表中创建, 且空间类型的字段必须为空)

MySQL详谈(二)------操作语法MySQL详谈(二)------操作语法

CREATE TABLE 表名(字段1, 字段2... UNIQUE|FULLTEXT|SPATIAL INDEX 索引名称(对应字段));

MySQL详谈(二)------操作语法MySQL详谈(二)------操作语法

可以使用SHOW CREATE TABLE 查看表结构

以下这是对里面各个字段的解释:

MySQL详谈(二)------操作语法

47. 在已有表添加索引

ALTER TABLE 表名 ADD 索引类型 索引名(字段);

48. 使用CREATE INDEX创建索引

CREATE 索引类型 索引名 ON 表名(字段);

49. 删除索引

DROP 索引类型 索引名 ON 表名;

50. 单表创建视图

CREATE VIEW 视图名称(视图中的字段名1,字段2..) AS SELECT 字段1,字段2...FROM 表名 WHERE 条件;

MySQL详谈(二)------操作语法

MySQL详谈(二)------操作语法

MySQL详谈(二)------操作语法

51. 多表创建视图

CREATE VIEW 视图名称(视图中的字段名1,字段2..) AS SELECT 字段1,字段2...FROM 表1,表2 WHERE 条件(也可以使用连接查询);

52. 修改原有视图

CREATE OR REPLACE VIEW 视图名(字段...) AS SELECT 字段1,字段2...FROM 表1,表2 WHERE 条件(也可以使用连接查询);

53. ALTER 修改原有视图

ALTER VIEW 视图名(字段名...) AS 查询语句;
54. 删除视图

DROP VIEW IF EXISTS 视图名;

55.

MySQL详谈(二)------操作语法

56. 创建用户语法

1>CREATE USER '用户名'@'host' IDENTIFIED BY '密码'  创建的用户无权限

2.GRANT 权限(all是所有权限) ON db.table(*.*表示所有) TO '用户名'@'host' IDETIFIED BY '密码'  WITH GRANT OPTION(赋予创建用户权限);

MySQL详谈(二)------操作语法

创建后的用户, 在创建用户

MySQL详谈(二)------操作语法

57. 删除用户

DROP USER '用户名'@'host';

58. 修改当前用户密码

SET PASSWORD =password('新密码');

59. 修改其他用户密码

SET PASSWORD FOR '用户名'@'host' = password('新密码');

推荐使用GRANT语句修改密码
语法格式:GRANT USAGE ON db.table TO '用户名'@'host' IDENTIFIED BY '新密码';

60. 远程连接数据库

用户的host地址设置为%, 远程连接命令: mysql -u用户名 -p密码 -h 主机地址
注意: 主机配置好之后一定要重启MySQL

61. 远程连接数据库

用户的host地址设置为%, 远程连接命令: mysql -u用户名 -p密码 -h 主机地址

62. 数据库备份

mysqldump -u 用户名 -p密码 数据库名称 > 文件保存路径.sql;
63. 数据库某个表备份命令

mysqldump -u 用户名 -p密码 数据库名称 表名 > 文件保存路径.sql;
64. 恢复数据

mysql -u用户名 -p密码 数据库名 < 数据文件路径.sql