mysql数据库
1.DDL数据定义语言
1.创建表
CREATE TABLE stu(
id int,
name varchar(10)
);
2.查看数据库中所有表名称
SHOW TABLES;
3.查看指定表的创建语句
SHOW CREATE TABLE stu;
4.查看表结构
DESC stu;
5.删除表
DROP TABLE stu;
6.修改表
1.修改之添加列
ALTER TABLE stu ADD(
edu VARCHAR(50),
famale VARCHAR(15)
);
2.修改之修改列类型
ALTER TABLE stu
MODIFY famale VARCHAR(10);
3.修改之修改列名
ALTER TABLE stu
CHANGE famale sex VARCHAR(10);
4.修改之删除列
ALTER TABLE stu
DROP sex;
5.修改表名称
ALTER TABLE stu
RENAME TO stu1;
2.DML数据库操作语言
1.插入数据
INSERT INTO stu()
INSERT INTO stu(
id,name,edu
) VALUES (
1,'tom','grade1'
);
若没有给出插入的列,则表示要插入所有的列
值的个数必须是列表个数,值的顺序必须与给出的列的顺序相同
INSERT INTO stu
VALUES (
2,'luffy','grade2'
);
没有指定列等同插入NULL值
INSERT INTO stu(
name,edu
) VALUES (
'jerry','grade2'
);
2.修改数据
条件必须是一个boolean类型的值或者表达式:
运算符:= 、!= 、< 、>、<> 、>=、 <= 、 BETWEEN ... AND 、 IN(...) 、IS NULL 、 NOT 、 OR 、 AND
UPDATE stu SET id=5 WHERE name='tom';
3.删除数据
DELETE FROM stu WHERE id IS NULL;
用 TRUNCATE TABLE 的指令。在这个指令之下,表格中的资料会完全消失,可是表格本身会继续存在。
TRUNCATE TABLE stu;
3.DCL数据控制语言
1. 创建用户
用户只能在指定的IP登陆
CREATE USER 用户名@IP地址 IDENTIFIED BY '密码'
用户可以在任意IP上登陆
CREATE USER 用户名@IP'%' IDENTIFIED BY '密码'
GRANT:CREATE ALTER DROP INSERT UPDATE DELETE SELECT
CREATE USER Tom@'%' IDENTIFIED BY '123';
2.给用户授权
GRANT 权限1,...权限n ON 数据库.* TO 用户名@IP地址
GRANT ALL ON test.* TO Tom@'%' ;
3.撤销授权
REMOVE 权限1,...权限n ON 数据库.* TO 用户名@IP地址
4.查看权限
SHOW GRANTS FOR 用户名@IP地址
5.删除用户
DROP USER 用户名@IP地址
4.DQL数据查询语言
1.查询所有列
SELECT * FROM stu;
2.查询指定列
SELECT id ,name FROM stu;
3.完全重复的记录只显示一次
SELECT DISTINCT name FROM stu;
4.列运算
(1).数量类型的列可以做加减乘除运算
SELECT id+10 FROM stu;
(2).字符串类型的可以做连续运算
SELECT id,name,CONCAT('SUST',edu) FROM stu;
(3).转换NULL值
SELECT IFNULL(id,1000),name,edu FROM stu;
(5)给列起别名
SELECT id as number , name , edu FROM stu;
as可以省略
5.DQL数据查询语言
(1)条件查询
SELECT * FROM stu WHERE id > 3 AND id IS NOT NULL;
SELECT * FROM stu WHERE id BETWEEN 5 AND 7;
SELECT * FROM stu WHERE name IN('Tom');
(2)模糊查询
下划线”_“匹配任意一个字符,%匹配任意多个字符
SELECT * FROM stu WHERE name LIKE 't%';
SELECT * FROM stu WHERE name LIKE 'j_rry';
(3)排序
升序 ASC 可省略
SELECT * FROM stu ORDER BY id ASC;
降序 DESC
SELECT * FROM stu ORDER BY id DESC;
使用多列作为排序条件
SELECT * FROM stu ORDER BY id ASC,edu DESC;
(4)聚合函数
查询人数(列数)
SELECT count(*) FROM stu;
不累计NULL
SELECT count(id) FROM stu;
数字等价于*
SELECT count(2) FROM stu;
sum
SELECT sum(id) FROM stu;
max、min
SELECT max(id) FROM stu;
avg
SELECT avg(id) FROM stu;
(5)分组查询
SELECT edu,count(*) FROM stu GROUP BY edu;
(6)limit方言
从第五条开始,查三条
SELECT * FROM stu LIMIT 4,3;