-- 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的更多相关文章

  1. mysql复习秘籍

    mysql复习 一:复习前的准备 1:确认你已安装wamp 2:确认你已安装ecshop,并且ecshop的数据库名为shop 二 基础知识: 1.数据库的连接 mysql -u -p -h -u 用 ...

  2. mysql复习-来源考试

    mysql复习-   No1 .登录和权限 (一)常用命令1.登录mysqlmysql -h localhost -u root -p 2.重启mysqlservice mysql restart 延 ...

  3. MySQL复习值代码知识点(1)

    MySQL复习值代码知识点 一. 创建数据库 create database 数据库名: 二. 删除数据库 drop database 数据库名: 三. 选择相应的数据库 use 数据库名: 四. 创 ...

  4. mysql复习相关

    Mysql相关 mysql增删改查 我们需要修改数据表名或者修改数据表字段时,就需要使用到Mysql Alter命令 删除,添加或修改表字段 alter table student drop regi ...

  5. 一天一点MySQL复习——获取数据库系统时间、变量赋值、变量比较

    一.SQL获取系统时间 mysql> select now() from dual; +---------------------+ | now() | +------------------- ...

  6. Mysql 复习

    1.my.ini :mysql 配置文件 [client]#password    = your_passwordport        = 3306socket        = /tmp/mysq ...

  7. mysql 复习与学习(二)数据库及表结构的创建删除

    mysql -h localhost -uroot -p123456 //连接数据库 show databases; //查看数据库 create database if not exists db_ ...

  8. mysql复习

    1.数据库操作 CREATE DATABASE 数据库名 charset utf8; 查看数据库 show databases; show create database db1; select da ...

  9. Mysql复习大全(转)

    基础知识: 1.数据库的连接 mysql -u -p -h -u 用户名 -p 密码 -h host主机 2.库级知识 显示数据库: show databases; 选择数据库: use dbname ...

  10. mysql复习之一

    DROP DATABASE mysql_shiyan;. cd /home/shiyanlou/Desktop git clone https://github.com/shiyanlou/SQL4 ...

随机推荐

  1. InetlliJ IDEA的快捷键及各种配置

    在IDEA中新建Maven工程,之后再新建一个Maven模块,此时在模块中的src/main/java中右键新建Java文件时,发现只能新建普通文件,不能新建Java类了,怎么回事,和eclipse的 ...

  2. java 反射和泛型-反射来获取泛型信息

    通过指定对应的Class对象,程序可以获得该类里面所有的Field,不管该Field使用private 方法public.获得Field对象后都可以使用getType()来获取其类型. Class&l ...

  3. JAXB常用注解讲解(超详细)

    简介: JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例 ...

  4. 微信里首次跳转会到首页问题(window.location失效)

    将window.location.href 换为location.href

  5. MockMvc control层单元测试 参数传递问题

    GET: 1.路径参数@PathVariable 2.表单参数@RequestParam POST: 1.JSON请求体参数 @RequestBody 放: 1.路径参数@PathVariable 2 ...

  6. 2019-5-31-SharpDx-进入全屏模式

    title author date CreateTime categories SharpDx 进入全屏模式 lindexi 2019-5-31 9:5:36 +0800 2019-5-30 20:1 ...

  7. VisualStudio 断点调试详解

    本文详细告诉大家 VisualStudio 断点调试的功能和使用方法,本文使用的是最新 VisualStudio2019 的功能,也许在你看到这篇博客的时候这个版本已经过时 本文将会按照从简单到复杂, ...

  8. 基于bootstrap3.3.4的简单框架搭建(左侧导航收起滚动)

    前提:博主本人做.net方向的2年多了 去年的后半年公司要做基于bootstrap框架的后台,由于没有经验,然后跟公司美工一块从0开始折腾,对这个框架不是太熟悉,然后就开始各种自己写js写css的往里 ...

  9. c++ vector 的坑

    一个空的vector执行pop_back操作会发生什么 由于之前看STL源码剖析的时候,发现所执行的操作如下: 只是简单的将末尾的finish迭代器减1后destroy.这让人产生一个疑问:假如这个v ...

  10. Visio模具与模版

    yy 这些形状就是模具 点击更多形状 然后新建模具 也可以打开已有的模具 模具名字右边有星号 代表模具未保存 鼠标右键单击可以选择保存 选择属性可以进行设置(信息之类的)也可以进行关闭 模具文件三种打 ...