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 主表名(主键列);
29. 删除表的外键约束
alter table 表名 drop foreign key 外键约束名;
30. 非空约束
not null; 在创建表的时候在你想要的地方添加
31. 使用唯一性约束
constraint 约束名 unique 字段名;
或者
字段名 数据类型 unique;
unique 和 primary key的区别:
一个表中可以有多个字段声明为unique, 但只能有一个primary key, 同时, 声明primay key 的列不允许有空值, 但是声明为unique的字段允许空值null的存在
32. 使用默认约束
字段名 数据类型 default 默认值;
33. 删除没有被关联的表(可以删除多个)
deop table if exists 表名, 表名1,表名2
34. 删除被其他表关联的主表
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 表名 条件;
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列)
创建空间索引: SPATIAL(必须在MyISAM类型的表中创建, 且空间类型的字段必须为空)
CREATE TABLE 表名(字段1, 字段2... UNIQUE|FULLTEXT|SPATIAL INDEX 索引名称(对应字段));
以下这是对里面各个字段的解释:
47. 在已有表添加索引
ALTER TABLE 表名 ADD 索引类型 索引名(字段);
48. 使用CREATE INDEX创建索引
CREATE 索引类型 索引名 ON 表名(字段);
DROP 索引类型 索引名 ON 表名;
50. 单表创建视图
CREATE VIEW 视图名称(视图中的字段名1,字段2..) AS SELECT 字段1,字段2...FROM 表名 WHERE 条件;
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.
56. 创建用户语法
1>CREATE USER '用户名'@'host' IDENTIFIED BY '密码' 创建的用户无权限
2.GRANT 权限(all是所有权限) ON db.table(*.*表示所有) TO '用户名'@'host' IDETIFIED BY '密码' WITH GRANT OPTION(赋予创建用户权限);
创建后的用户, 在创建用户
57. 删除用户
DROP USER '用户名'@'host';
58. 修改当前用户密码
SET PASSWORD =password('新密码');
59. 修改其他用户密码
SET PASSWORD FOR '用户名'@'host' = password('新密码');
语法格式: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