码迷,mamicode.com
首页 > 数据库 > 详细

mysql复习2

时间:2020-01-17 10:17:06      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:复习   rename   null   commit   drop   sel   img   check   index   

-- 1. 创建和管理表 CREATE TABLE

-- 方式一:
CREATE TABLE emp1(
id INT(10),
`name` VARCHAR(20),
salary DOUBLE(10, 2),
hire_date DATE
);

-- 方式二:基于现有表创建新表(相当于表的复制)
CREATE TABLE emp3
AS
SELECT *
FROM employees;

CREATE TABLE emp4
AS
SELECT employee_id, last_name, salary
FROM employees
WHERE department_id = 90;

-- 基于现有表创建新表,但是不导入数据
CREATE TABLE emp5
AS
SELECT *
FROM employees
WHERE 1 = 2;

-- 2. 修改表 ALTER TALBE

-- ①添加列
ALTER TABLE emp4
ADD age INT(2);

ALTER TABLE emp4
ADD gender VARCHAR(2) DEFAULT ‘女‘;

-- ②修改列
ALTER TABLE emp4
MODIFY gender VARCHAR(20);

-- ③重命名列
ALTER TABLE emp4
CHANGE gender gender22 VARCHAR(2);

-- ④删除列
ALTER TABLE emp4
DROP COLUMN age;

-- 3. 重命名表
ALTER TABLE emp4
RENAME employees4;

-- 4. 清空表
TRUNCATE TABLE emp3;

-- 5. 删除表
DROP TABLE employees4;

-- DDL : 数据定义语言,不可以回滚的,因为都是自动 commit

 


 

技术图片

 

 技术图片

-- 3. 约束与分页

-- NOT NULL 非空约束,规定某个字段不能为空
CREATE TABLE emp7(
id INT(10) NOT NULL, -- 列级约束
`name` VARCHAR(20)
);

 

-- 添加非空约束
ALTER TABLE emp7
MODIFY `name` VARCHAR(25) NOT NULL;

-- 取消非空约束
ALTER TABLE emp7
MODIFY `name` VARCHAR(25) NULL;

-- UNIQUE 唯一约束,规定某个字段在整个表中是唯一的
CREATE TABLE emp8(
id INT(10),
`name` VARCHAR(20),
CONSTRAINT emp8_id_un UNIQUE(id) -- 表级约束
);

-- 组合约束
CREATE TABLE emp9(
id INT(10),
`name` VARCHAR(20),
phone VARCHAR(25),
email VARCHAR(30),
CONSTRAINT emp9_phoneAndEmail_un UNIQUE(phone, email)
);

-- 添加唯一约束
ALTER TABLE emp9
ADD CONSTRAINT emp9_name_un UNIQUE(NAME);

-- 删除唯一约束
ALTER TABLE emp9
DROP INDEX emp9_name_un;

-- PRIMARY KEY 主键(非空且唯一) : 通常利用主键确定唯一一条数据
CREATE TABLE emp10(
id INT(10) PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(20)
);


CREATE TABLE emp11(
id INT(10),
`name` VARCHAR(20),
CONSTRAINT emp11_id_pk PRIMARY KEY(id)
);

-- 添加主键约束
ALTER TABLE emp11
ADD CONSTRAINT emp11_id_pk PRIMARY KEY(id);

-- 删除主键约束
ALTER TABLE emp11
DROP PRIMARY KEY;

-- CHECK 检查约束
CREATE TABLE emp13(
id INT(10),
salary DOUBLE(10, 2),
CONSTRAINT emp13_salary_ck CHECK(salary > 3000)
);

-- MYSQL 分页(重要)
-- 公式:(当前页数-1)*每页条数,每页条数
SELECT employee_id, last_name, salary
FROM employees
ORDER BY salary DESC
LIMIT 20, 10;

mysql复习2

标签:复习   rename   null   commit   drop   sel   img   check   index   

原文地址:https://www.cnblogs.com/liuyi13535496566/p/12203864.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!