-- 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;

最新文章

  1. entiryFramework 事务控制
  2. iOS 笔记
  3. Autofac和DynamicProxy2搭配实现Aop动手训练
  4. Sqlte数据库
  5. 关于完整解答Leo C.W博客中名为“我们公司的ASP.NET 笔试题,你觉得难度如何”的所有题目
  6. namespace的用法
  7. Ubuntu配置apache
  8. 灰度直方图及处理“cvQueryHistValue_1D”: 找不到标识符”的问题(上)
  9. Linux安装完Tomcat后无法登陆管理界面
  10. csdn的调查问卷,好多都不懂哈
  11. AQS框架源码分析-AbstractQueuedSynchronizer
  12. 纯小白入手 vue3.0 CLI - 3.1 - 路由 ( router )
  13. BZOJ4383 Pustynia(线段树+拓扑排序)
  14. LeetCode 766 Toeplitz Matrix 解题报告
  15. Linux各种类型压缩包解压缩方法
  16. JVM学习记录-Java内存模型(一)
  17. 自己定义转场动画--Swift3.0版本号
  18. Codeforces D - Ithea Plays With Chtholly
  19. java获取本月第一天和最后一天
  20. 第12课:HTML基础之DOM操作1

热门文章

  1. SpringSecurity认证流程详解
  2. UVA 12563 "Jin Ge Jin Qu hao" (背包)
  3. linux 在 /proc 里实现文件
  4. PowerShell 拿到显卡信息
  5. vue项目上滑滚动加载更多&下拉刷新
  6. 组合数学入门—TwelveFold Way
  7. Linux 内核 启动时间
  8. Iptables&Firewalld防火墙
  9. vue新增属性响应式更新的问题
  10. javaweb项目启动时自动启动rmi服务器实例