创建库删除库
--创建新的数据库
CREATE DATABASE 数据库名
DROP DATABASE 数据库名
增加
- 添加表
CREATE TABLE t_test(
id INT PRIMARY KEY AUTO_INCREMENT,
userName VARCHAR(20),
birthday DATE,
tel CHAR(11),
sex ENUM('男','女'),
money INT
);
- 添加多条信息
INSET INTO t_user(表头1,表头2) values(值1,值2);
例如
INSET INTO t_user(username,pwd,birthday,tel,sex,money)
VALUES ('张三','123','1980-03-01','12345678901','男',2000);
- 添加列
ALTER TABLE t_user ADD address VARCHAR(50);
删除
- 删除表
DROP TABLE t_user;
- 删除列
ALTER TABLE t_user DROP COLUMN userAddress;
- 删除行
DELETE FROM t_user WHERE id=2;
修改
- 修改列
ALTER TABLE t_user CHANGE address userAddress VARCHAR(100);
- 修改值
UPDATE t_user SET pwd='333',money='2500' WHERE userName='张三';
查询
- 查询表中所有数据
SELECT * FROM t_user;
select userName,money frm t_user;
- 查询返回限定行
SELECT * FROM t_user LIMIT 0,3;
- 查询空值null
null不能用=,只能用is null或is not null
SELECT * FROM t_user WHERE money IS NULL;
- 查询多条信息(or/in)
SELECT * FROM t_user WHERE userName='张三' OR userName='李四';
- 模糊查询(_或%)
SELECT * FROM t_user WHERE userName LIKE '李_';
SELECT * FROM t_user WHERE productName LIKE '%糕%';
- 查询多条件+显示部分
SELECT * FROM t_user WHERE productType='酒类' AND price>=100 AND price<=1000 LIMIT 0,5;
- 查询去除重复的类名(distinct)
SELECT DISTINCT sex FROM t_user;
- 查询结果排序显示
-- 按员工工资排序,默认为升序ASC,降序需要加上DESC。
-- 工资相同,按年龄大小排序。
SELECT * FROM t_user ORDER BY money DESC,birthday;
- 查询当前日期
select curdate() from 表名
聚合函数的运用
CREATE TABLE t_grade(
id INT PRIMARY KEY AUTO_INCREMENT,
sname VARCHAR(20),
sex ENUM('男','女'),
className VARCHAR(20),
grade INT
);
a. 统计学生人数
SELECT COUNT(*) '学生总人数',COUNT(grade)'参考人数' FROM t_grade;
b.统计学生的总分、平均分、最高分、最低分
SELECT SUM(grade),AVG(grade),SUM(grade)/COUNT(*),MAX(grade),MIN(grade) FROM t_grade;
c. 统计每个班的人数
SELECT className,COUNT(*) num FROM t_grade GROUP BY className;
d.统计每个班的总分和平均分
SELECT className,SUM(grade) '总分',SUM(grade)/COUNT(*) '平均分' FROM t_grade GROUP BY className;
having运用
SELECT className,COUNT(*) FROM t_grade GROUP BY className HAVING COUNT(*)<=3;
SELECT className,SUM(grade) FROM t_grade GROUP BY className HAVING SUM(grade)>300;
复制表
create table 新表名 select * from 原表名;
where与if条件连用
SELECT * FROM sys_user where if(id<10,name='zhangsan',name='lisi');
谓词
谓词就是返回值为真值的函数
LIKE关键字一般进行模式匹配
%是代表0字符以上的任意字符串;
_(下划线)代表任意一个字符;
BETWEEN关键词会包含前后两个临界值;