0.链接数据库
$mysql -u root -p
connection id 表示的是链接次数
1.建立数据库
CREATE DATABASE dnname
2.默认的数据库
information_schema:主要存储了系统中的一些数据库对象信息,如用户表信息、列信息、权限信息、字符集信息、分区信息等
cluster:存储系统的集群信息
mysql:存储了系统的用户权限信息
test:系统自动建立的测试数据库,任何用户均可以使用
3.选择数据库
USE dbname
4.删除数据库
drop database dbname
5.建立表
CREATE TABLE tablename(
column_name column_type constrains,
column_name column_type constrains
)
6.查看表定义
DESC tablename
7.删除表
DROP TABLE tablename
8.修改表
1)修改表字段类型
ALTER TABLE tablename MODIFY[COLUMN] column_definition[FIRST|AFTER col_name]
alter table student modify name varchar(20);
2)增长表字段
ALTER TABLE tablename ADD[COLUMN] column_definition[FIRST|AFTER col_name]
alter table student add column age int(3);
3)删除表字段
AlTER TABLE tablename DROP[COLUMN] col_name
alter table student drop column age;
4)字段更名
ALTER TABLE tablename CHANGE[COLUMN] old_col_name column_definition[FIRST|AFTER col_name]
alter table student change age age1 int(4)
注意:change 和modify均可以修改表的定义,不一样的是change后面须要写两次列名,不方便。可是change的优势是能够修改列名称,modify则不能。
5)修改字段排列顺序
前面介绍的字段增长和修改语法(ADD/CHANGE/MODIFY)中,都有一个可选项first|after column_name,
这个选项能够用来修改字段在表中的位置,ADD增长的新字段默认是加在表的最后位置,而CHANGE/MODIFY默认都不会改变字段的位置
#将新增字段birth date 加在name 后
alter table student add birth date after name;
#修改字段age,将它放在最前
alter table student modify age int(30 first;
9.更改表名
ALTER TABLE tablename RENAME [TO] new_tablename
alter table student rename stu
字段与value一 一对应,可空字段,非空可是含有默认值的字段,自增字段,能够不用再insert后面字段列表和values中填写;能够一次插入多条记录,每条记录之间用逗号隔开
2.更新记录
UPDATE tablename SET field1=value1,field2=value2,...fieldn=valuen WHERE [CONDITION]
3.删除记录
DELETE FROM tablename [WHERE CONDITION]
4.查询记录
SELECT * FROM tablename[WHERE CONDITION]
1)查询不重复的记录
select distionct name from student;
2)条件查询
select * from student where sid=1;
3)排序和限制
SELECT * FROM tablename[WHERE CONDITION] [ORDER BY field1 [DESC|ASC],field2 [DESC|ASC],..fieldn [DESC|ASC]]
select * from student order by name; #默认ASC 升序
LIMIT关键字显示部分记录
SELECT * FROM tablename [LIMIT offset_start,row_count];
offset_start 表示记录的起始偏移量,默认为0,因此能够直接写行数
row_count 表示显示的行数
4)聚合
SELECT [field1,field2,...fieldn] fun_name
FROM tablename
[WHERE where_condition]
[GROUP BY field1,field2,...fieldn]
[WITH ROLLUP]
[HAVING where_condition]
func_name表示要作的聚合操做,聚合函数,如SUM,COUNT(*),MAX(),MIN()
group by关键字表示要进行分类聚合的字段
WITH ROLLUP 是可选语法,代表是否对分类聚合后的结果进行再汇总
HAVING 关键字表示对分类后的结果再进行条件过滤
5)表链接
内链接:
仅选出两张表中的互相匹配的记录
外链接(左链接,右链接)
左链接:包含全部的左边表中的记录甚至是右边表中没有和它匹配的记录
右链接:包含全部右边表中的记录甚至是左边表中没有和它匹配的记录
6)子查询
当进行查询的时候,须要的条件是另一个select语句的结果,这个时候就要用到子查询,用于子查询的关键字主要包括 in、not in、=、!=、exists、not exists
将两张表的数据按照必定的查询条件查询出来后,将结果合并到一块儿显示出来,这个时候可使用 union,union all 关键字来实现
UNION和UNION ALL的区别:
union all直接把记录合并在一块儿
union 合并后的结果去除重复记录DISTINCT
DCL语句主要是DBA用来管理系统中的对象权限使用
容许用户user1对本地test数据库的全部表进行SELECT/INSERT权限
grant select,insert on test.* to 'user1'@'localhost' identified by '123';
禁止insert,收回用户的insert权限revoke insert on test.* from 'user1'@'localhost' ;