SDay1之DDL、DML、DQL

DDL 语句

创建数据库
CREATE DATABASE db02;
选择使用数据库
USE db02;-- 针对当前会话的一个临时使用数据库
SELECT DATABASE();
删除数据库
DROP DATABASE SDay1;
创建表
CREATE TABLE stu(
	stu_id INT PRIMARY KEY,-- 主键约束
	stu_name VARCHAR(20) UNIQUE,-- 唯一约束
	gender CHAR(1) DEFAULT '男',-- 默认值约束
	address VARCHAR(100) NOT NULL,-- 非空约束
	 birthday date
	     --  联合主键 PRIMARY KEY(stu_id,stu_name)
);
查看字段列
DESC stu;
删除表
DROP TABLE stu;

删除表 先删除drop 再创建create

TRUNCATE TABLE stu;
SHOW TABLE;-- 查看当前数据库下的表

DML 语句

添加
-- INSERT INTO 表名(字段名...) value();
-- INSERT INTO 表名 value();
-- INSERT INTO 表名 values(),(),(),(),...;
INSERT INTO stu(stu_id,stu_name,address) VALUE(1001,'小王','黑龙江');
INSERT INTO stu VALUE(1002,'小林','女','河南鹤壁','1999-12-30');
INSERT INTO stu VALUES(1003,'小李','女','江苏南通','1999-12-30'),
					  (1004,'小七','男','安徽合肥','1999-12-30'),
			   		  (1005,'小张','女','河北保定','1999-12-30'),
					  (1006,'小米','女','广东肇庆','1999-12-30');
修改

– UPDATE 表名 set 字段1=值1,字段2=值2… where 条件

UPDATE stu SET birthday='2001-11-10' WHERE stu_name='小张';
删除

DELETE FROM 表 WHERE 条件

DELETE FROM stu WHERE stu_id=1003;

DQL 语句

单表查询

查询全部字段
SELECT * FROM stu;
查询指定字段
SELECT stu_id,stu_name FROM stu;
去重查询
SELECT DISTINCT gender FROM stu;
起别名查询
SELECT DISTINCT gender '性别' FROM stu;

条件查询

算术运算符
SELECT stu_id +1000,stu_name FROM stu;
比较运算符

!= 不规范 , <> 规范 都是不等于,都能用

SELECT * FROM stu WHERE stu_id < 1005;
逻辑运算符

and 和 or

SELECT * FROM stu WHERE stu_id=1004 AND birthday = '1999-12-30';
SELECT * FROM stu WHERE stu_id=1004 OR birthday = '1999-12-30';
特殊的逻辑运算符 和 比较运算符
SELECT * FROM stu WHERE stu_id=1001 OR stu_id=1003 OR stu_id=1006;
SELECT * FROM stu WHERE stu_id IN (1001,1003,1006);
SELECT * FROM stu WHERE stu_id NOT IN (1001,1003,1006);

age>=10 and age<=20

SELECT * FROM stu WHERE stu_id BETWEEN 1002 AND 1005;
特殊的比较

错误的写法,但语法没问题

SELECT * FROM stu WHERE birthday = NULL;

对于null要用is null 判断

SELECT * FROM stu WHERE birthday IS NULL;

模糊查询(通配符)

_表示一个字符 %表示0~n个字符

SELECT * FROM stu WHERE stu_name LIKE '小_';
SELECT * FROM stu WHERE stu_name LIKE '_小';
SELECT * FROM stu WHERE stu_name LIKE '大_小';
SELECT * FROM stu WHERE stu_name LIKE '小%';
SELECT * FROM stu WHERE stu_name LIKE '%小';
SELECT * FROM stu WHERE stu_name LIKE '%小%';
分组

分组将依据(一列或多列)相同的作为一组
分组之后虽然看到的数据只有一行,但这一行代表着一组,一组可能有多条数据

SELECT gender FROM stu GROUP BY gender;
聚合函数 count() max() min() avg() sum()

如下面一条语句,虽然按gender分组后,一般只会显示gender一列
但可以通过聚合函数获取到某一列的和或最大值或最小值等结果

SELECT gender,COUNT(stu_id) FROM stu GROUP BY gender;
having

分组后的 条件筛选,分组之前用where
即先分组,在分组里筛选(不是只有一列的分组),然后获取到结果

SELECT gender,COUNT(stu_id) cs FROM stu GROUP BY gender HAVING COUNT(stu_id)>2;
排序

(升序、降序,默认是升序,且只能根据一列排序)

SELECT * FROM stu ORDER BY stu_id;-- asc
SELECT * FROM stu ORDER BY stu_id DESC;-- desc
SELECT * FROM stu ORDER BY stu_id ASC,stu_name DESC;--按stu_id升序,stu_name降序
限制查询个数

LIMIT(m,n),其中m是从第几条数据开始查询,n是查询几条数据
例:LIMIT 2,3

SELECT * FROM stu LIMIT 2,3;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值