增
--创建库
CREATE DATABASE
--创建表
CREATE TABLE employee(
dept VARCHAR(50);
name CHAR(50);
);
--插入数据(单行使用VALUES,多行使用VALUE);
INSERT INTO employee(dept,name) VALUES ('运维部','李永');
--约束
--主键:PRIMARY KEY 外码:FOREIGN KEY 检查约束:CHECK
--唯一:UNIQUE 非空:NOT NULL 默认:DEFAULT
CREATE TABLE employee(
studentID VARCHAR(16) PRIMARY KEY,--主键
NAME VARCHAR(10) CHECK(age>=10 and age<=35),--检查
sno VARCHAR(20) UNIQUE,--唯一
postcode CHAR(11) DEFAULT NULL,--默认
age INT NOT NULL--非空
)
删
--删除当前表全部内容
DELETE FROM employee;
--删除指定内容
DELETE FROM employee
WHERE name='张三';
查
--查看当前表全部内容
SELECT*FROM employee;
--指定列查询
SELECT name,age,gender FROM employee;
--指定行查询
SELECT*FROM employee WHERE gender='女';
--范围查询(1)
SELECT*FROM employee WHERE gender='男' AND age>=30 AND age<=35;
--范围查询(2) 可使用NOT IN反转查询结果
SELECT*FROM employee WHERE gender='男' AND age IN (30,31,32);
--模糊查询 %代替任意数量的字符 _代替一个未知字符
SELECT*FROM employee WHERE gender='男' AND name LIKE '王%';
--合并查询 没有All会删除重复项,并且升序排序
SELECT id,name FROM dept
UNION ALL
SELECT id,name FROM dept
--内连接查询 FROM 表1 INNER JOIN 表2 ON 条件
SELECT*FROM employee INNER JOIN student on employee.id = student.id;
--交叉连接 FROM 表1 CROSS JOIN 表2;
SELECT*FROM employee CROSS JOIN student;
--左连接 FROM 表1 left outer join 表2 ON 条件
--取左表全部数据以及和右表对应的数据
SELECT student.name AS D,employee.name AS E
FROM student left outer join employee ON employee.deptID=student.ID
WHERE 1=1;
--右连接 FROM 表1 right outer join表2 ON 条件
--取右表全部数据以及和左表对应的数据
SELECT student.name AS D,employee.name AS E
FROM student right outer join employee ON employee.deptID=student.ID
WHERE 1=1;
改
--修改数据1
UPDATE employee --要修改的表
SET name='王五',age=19 --修改的内容
WHERE studentID='1990201'; --定位被修改的数据
--修改数据2
DELETE FROM employee
WHERE studentID='1990232';--先删除指定表的指定数据
INSERT INTO employee(studentID,name,age
)VALUE('1990202','张三',18); --在进行插入
--更改表名