文章目录
连接服务器
mysql -uroot -proot
数据库
查看所有数据库
show databases;
创建数据库
create database 数据库名 (charset 字符集)
使用数据库
use database;
删除数据库
drop database 数据库名;
表
显示表的信息
desc 表名;
查看所有表
show tables;
建表
create table 表名(
字段名 字段类型,
。。。
} engine myisam charset utf8;
改表名
rename table 原表名 to 新表名;
修改表
alter table tableName add 列名称 列类型 列参数 first [加的列在表的最前面];
alter table tableName add 列名称 列类型 列参数 [加的列在表的最后];
alter table tableName add 列名称 列类型 列参数 after 某列 [把新列指定在某列后];
删除列
alter table 表名 drop 列名;
修改列类型
alter table 表名 modify 列名 列类型 列参数;
修改列名及类型
alter table 表名 change 旧列名 新列名 新列类型 新列参数;
插入数据
INSERT INTO 表名 (字段名1,字段名2,...)
VALUES(值1,值2,...), ... ,(值1,值2,...);
清空表数据
truncate 表名;
Truncate 和 delete是有区别的
在于truncate相当于删表再重建一张同样结构的表,操作后得到一张表。而delete是从删除所有的层面来操作的,Truncate相当于把旧的学籍表扔了重画一张,Delete相当于用橡皮擦把学籍表的数据库擦掉。
修改表数据
UPDATE 表名
SET 字段名=值, ... ,字段名=值
WHERE 语句;
删除表数据
DELETE
FROM 表名
WHERE 语句;
查数据
--查询组合字段
(5)select (5-2) distinct(5-3) top(<top_specification>)(5-1)<select_list>
--连表
(1)from (1-J)<left_table><join_type> join <right_table> on <on_predicate>
(1-A)<left_table><apply_type> apply <right_table_expression> as <alias>
(1-P)<left_table> pivot (<pivot_specification>) as <alias>
(1-U)<left_table> unpivot (<unpivot_specification>) as <alias>
--查询条件
(2)where <where_pridicate>
--分组
(3)group by <group_by_specification>
--分组条件
(4)having<having_predicate>
--排序
(6)order by<order_by_list> (desc,asc)
--取一些条目,0为偏移量,3为条目,偏移量offset为0可以不写
(7) limit 0,3 或 limit 3
union
(8) union将前后两个结果集连接起来,可以数据类型不一样,但是字段数不一样就会报错,注意结果集的order,如果内部结果集有limit则内部order起作用,否则内部order不起作用,外部order才会起作用
(sql) union (sql);
union的order问题
(SELECT id, departmentName
FROM department)
UNION
(SELECT id , lastName
FROM employee)
ORDER BY id
id departmentName
1 软件
1 张三
2 李四
(SELECT id, departmentName
FROM department)
UNION
(SELECT id , lastName
FROM employee)
ORDER BY id
LIMIT 2
id departmentName
1 软件
1 张三
(SELECT id, departmentName
FROM department)
UNION
(SELECT id , lastName
FROM employee ORDER BY id DESC)
ORDER BY id
LIMIT 2
id departmentName
1 软件
1 张三
(SELECT id, departmentName
FROM department)
UNION
(SELECT id , lastName
FROM employee ORDER BY id DESC LIMIT 1)
ORDER BY id
LIMIT 2
id departmentName
1 软件
2 李四
union的去重
如果两个结果集有重复的记录就会自动去重,用union all即可避免
(SELECT id FROM department)
UNION
(SELECT id from employee)
id
1
2
(SELECT id FROM department)
UNION ALL
(SELECT id from employee)
id
1
1
2
(SELECT id,departmentName FROM department)
UNION ALL
(SELECT id,lastName from employee)
id departmentName
1 软件
2 李四
1 张三
2 李四
(SELECT id,departmentName FROM department)
UNION
(SELECT id,lastName from employee)
id departmentName
1 软件
2 李四
1 张三