DESC stu;
ALTER TABLE stu CHANGE stu_class3 stu_class3 DOUBLE(4,1);
INSERT INTO stu(stu_id ,stu_name,stu_nation) VALUES (1,‘张三’,‘汉族’);
SELECt * FROM stu;
INSERT INTO stu VALUES(2,‘李四’,‘北京’,‘汉族’,99.0,80.0,79.0,NULL);
ALTER TABLE stu MODIFY use_time TIMESTAMP(YYYY-MM-dd hh:mm:ss);
INSERT INTO stu VALUES(3,‘王五’,‘America’,‘forige’,77,88,99,NULL);
DELETe FROM stu WHERe stu_id=1;
TRUNCATE TABLE stu; - 删除表,然后再创建一个一模一样的空表
UPDATe stu SET stu_address = ‘天津’,stu_class1=80,stu_class2=60,stu_class3=55 WHERe stu_id =1;
SHOW TABLES;
DESC sheet1
;
S
E
L
E
C
T
∗
F
R
O
M
s
h
e
e
t
1
; SELECT * FROM sheet1
;SELECt∗FROMsheet1;
ALTER TABLE sheet1$ RENAME TO stu_databases;
SELECt * FROM stu_databases;
ALTER TABLE stu_databases RENAME TO 21stu;
SELECt * FROM 21stu;
SELECt 专业名称, COUNT(班级名称)AS 人数,所属系部名称 FROM 21stu GROUP BY 专业名称;
- 按照专业,班级人数,所属系部汇总出来
SELECt 专业名称, COUNT(班级名称)AS 人数,所属系部名称 FROM 21stu GROUP BY 专业名称 HAVINg COUNT(班级名称)>30;
SELECt 专业名称, COUNT(班级名称)AS 人数,所属系部名称 FROM 21stu GROUP BY 专业名称 HAVINg 人数 >30;
-
分页查询
- 每页显示三条记录
SELECt * FROM 21stu LIMIT 0,3; - 第一页
SELECt * FROM 21stu LIMIT 3,3; - 第二页
SELECt * FROM 21stu LIMIT 6,3; - 第三页
-
公式:开始的索引 = (当前的页码 - 1)* 每页的条数
USE student;
CREATE TABLE student3 (
id INT, - 编号
NAME VARCHAr(20), - 姓名
age INT, - 年龄
sex VARCHAr(5), - 性别
address VARCHAr(100), - 地址
math INT, - 数学
english INT - 英语
);
INSERT INTO student3(id,NAME,age,sex,address,math,english) VALUES (1,‘马云’,55,‘男’,’
杭州’,66,78),(2,‘马化腾’,45,‘女’,‘深圳’,98,87),(3,‘马景涛’,55,‘男’,‘香港’,56,77),(4,‘柳岩’,20,‘女’,‘湖南’,76,65),
(5,‘柳青’,20,‘男’,‘湖南’,86,NULL),(6,‘刘德华’,57,‘男’,‘香港’,99,99),(7,‘马德’,22,‘女’,‘香港’,99,99),(8,‘德玛西亚’,18,‘男’,‘南京’,56,65);
SELECt * FROM student3;DROp TABLE student3;
SELECT
NAME, - 姓名
age - 年龄
FROM
student3;SELECt
address
FROM
student3;-
去除重复的结果集
SELECt DISTINCT address FROM student3; -
计算math和English的分数之和
SELECt NAME,math,english,math+english FROM student3; -
如果有null参与计算,计算结果都为null
SELECt NAME,math,english,math+ IFNULL(english,0)FROM student3;
SELECt NAME 姓名,math 数学,english 英语,math+ IFNULL(english,0)AS 总分 FROM student3;
-
查询大于20岁的人
SELECt * FROM student3 WHERe age >= 20; -
查询等于20岁的人
SELECt * FROM student3 WHERe age = 20; -
查询不等于20岁的人
SELECt * FROM student3 WHERe age != 20;
SELECt * FROM student3 WHERe age <> 20; -
查询年龄大于等于20小于等于30
SELECt * FROM student3 WHERe age >= 20 AND age<=30;
SELECt * FROM student3 WHERe age >=20 && age <=30; - &&不建议使用,并不通用
SELECt * FROM student3 WHERe age BETWEEN 20 AND 30; -
查询年龄22岁,18岁,25岁的信息
SELECt * FROM student3 WHERe age =22 OR age =18 OR age=25;
SELECt * FROM student3 WHERe age IN(22,18,25); -
查询英语成绩为null的
SELECt * FROM student3 WHERe english = NULL;- 不对的,null值不能使用=和!=来判断
SELECt * FROM student3 WHERe english IS NULL; -
查询英语成绩不为null的
SELECt * FROM student3 WHERe english IS NOT NULL; -
查询姓马的有哪些?
SELECt * FROM student3 WHERe NAME LIKE ‘马%’; -
查询第二个字是化的人有哪些?
SELECt * FROM student3 WHERe NAME LIKE ‘_化%’; -
查询姓名是三个字的人
SELECt * FROM student3 WHERe NAME LIKE ‘___’; -
查询姓名中含有德的人
SELECt * FROM student3 WHERe NAME LIKE ‘%德%’;
CREATE TABLE stu1(
id INT,
NAME VARCHAr(20) NOT NULL - name为非空
)- 删除name的非空约束
ALTER TABLE stu1 MODIFY NAME VARCHAr(20);
DELETe FROM stu1 WHERe id =2; - 2、在创建表后添加约束
ALTER TABLE stu1 MODIFY NAME VARCHAr(20) NOT NULL;
CREATE TABLE stu(
id INT,
phone_number VARCHAr(20) UNIQUE - 创建表时添加唯一的约束
);- 注意MySQL中唯一约束的值限定列的值可以有多个null;
SELECt * FROM stu;
INSERT INTO stu VALUES (1,1234),(2,1233);
ALTER TABLE stu MODIFY phone_number VARCHAr(20); - 这样是无法删除的
ALTER TABLE stu DROp INDEX phone_number; - 正确的删除表的唯一约束
ALTER TABLE stu MODIFY phone_number VARCHAr(20) UNIQUE;
#创建表的时候,添加主键约束
CREATE TABLE stu(
id INT PRIMARY KEY, - 给id添加主键约束
NAME VARCHAr (20)
)
DROP TABLE stu; - 删除表
TRUNCATE TABLE stu; - 删除
SELECT * FROM stu;- 错误写法 alter table stu modify id int;
ALTER TABLE stu DROp PRIMARY KEY;
ALTER TABLE stu MODIFY id INT PRIMARY KEY;
自动增长; 如果一列是数值类型的,使用auto_incerment 可以完成自动增长,一般是配合主键一起来使用的-
在创建表的时候来添加
CREATE TABLE stu(
id INT PRIMARY KEY AUTO_INCREMENT, - 给id添加主键约束和自动增长
NAME VARCHAr(20)
)
INSERT INTO stu VALUES (NULL,‘ccc’); -
删除自动增长
ALTER TABLE stu MODIFY id INT; -
添加自动增长
ALTER TABLE stu MODIFY id INT AUTO_INCREMENT; -
在创建表时,可以添加外键
-
语法:
SELECT * FROM employee;
SELECt * FROM department;- 删除外键
ALTER TABLE employee DROP FOREIGN KEY dep_id_kf; - 创建表后,添加外键
ALTER TABLE employee ADD CONSTRAINT emp_dep_fk FOREIGN KEY (dep_id) REFERENCES department (id);
- 添加级联,设置级联更新
- 设置外键以后,不能轻易去更改数据,所以就要设计到级联更新
- 第一步将关联表的值设为null
UPDATE employee SET dep_id = NULL WHERe dep_id= 1; - 第二步修改表的外键关联值
UPDATE department SET id = 5 WHERe id = 1; - 第三步进行关联表值的修改
UPDATE employee SET dep_id = 5 WHERe dep_id IS NULL;
ALTER TABLE employee ADD CONSTRAINT dep_id_kf FOREIGN KEY (dep_id) REFERENCES department (id) ON UPDATE CASCADE;
- 级联删除 on delete cascade 在实际操作中,要很谨慎,关联的各个表的对应数据会在全部删除
- 删除外键
-
- 每页显示三条记录