03 语法:数据定义语言(DDL)

目录

一、数据库

1.创建数据库(DDL):

2.查看数据库;

3.删除数据库(DDL):

4.选择数据库:

二、表、列

1.创建表(DDL):

2.删除表(DDL):

3.修改表名(DDL):

4.修改列名(DDL):

5.修改列类型(DDL):

6.添加新列(DDL):

7.删除指定列(DDL):

三、约束

一、主键约束

1.添加主键约束

2.修改表添加主键约束(DDL):

3.删除主键(DDL):

二、外键约束

添加外键约束(DDL):

删除外键约束(DDL):

三、唯一性约束

添加唯一性约束(DDL):

删除唯一性约束(DDL):

四、非空约束

添加非空约束(DDL):

删除非空约束:(DDL)

五、创建表时添加约束

查询表中的约束信息(DDL):

创建表时添加约束(DDL):

四、索引

一、普通索引

1.查询索引:

2.直接创建索引:

3.添加索引:

4.删除索引:

二、唯一索引

1.创建唯一索引:

2.修改表添加唯一索引:

3.创建表指定唯一索引:

三、主键索引

1.修改表添加主键索引:

2.创建表时指定主键索引:

四、组合索引

1.修改表添加组合索引:

2.创建表时创建组合索引:


一、数据库

1.创建数据库(DDL):

语法:CREATE DATABASE 数据库名 DEFAULT  CHARACTER SET 字符编码;

例:create database test default character set utf8;创建一个utf8的名为test的数据库

2.查看数据库;

语法:show databases;

3.删除数据库(DDL):

语法:DROP DATABASE 数据库名称;

例:drop database test;删除名为test的数据库

4.选择数据库:

语法:USE 数据库名;

例:use test;选择名为test的数据库;

二、表、列

1.创建表(DDL):

语法:CREATE TABLE 表名(列名 类型,列名 类型......);

例:create table employees(employee_id int ,employee_name varchar(10),salary float(8,2));创建一个名为employees的表,并且包含三个成员

2.删除表(DDL):

语法:DROP TABLE 表名;

例:drop table employees;

3.修改表名(DDL):

语法:ALTER TABLE 旧表名 RENAME 新表名;

例:alter table employees rename emp;

4.修改列名(DDL):

语法:ALTER TABLE 表名 CHANGE COLUMN 旧列名 新列

类型;

例:alter table emp change column emp_name name varchar(10);

注意:新列名后面一定要写新列名的类型,否则不通过!

5.修改列类型(DDL):

语法:ALTER TABLE 表名 MODIFY 列名 新类型;

例:alter table emp modify emp_name varchar(40);

6.添加新列(DDL):

语法:ALTER TABLE 表名 ADD COLUMN 新列名 类型;

例:alter table emp add column salary float(8,2);

7.删除指定列(DDL):

语法:ALTER TABLE 表名 DROP COLUMN 列名;

例:alter table emp drop column salary;

三、约束

一、主键约束

1.添加主键约束

语法:ALTER TABLE 表名 ADD PRIMARY KEY(列名)

例:alter table emp add primary key(employee_id);

2.修改表添加主键约束(DDL):

语法:alter table 表名 modify 主键 类型auto_increment;

例:alter table emp modify employee_id int auto_increment;

3.删除主键(DDL):

注意:

删除主键时,如果主键列具备自动增长能力,需要先去掉自动增长,然后删除主键。

删除主键自动增长能力(DDL):

第一步:(先将主键自动增长能力删除)

语法:ALTER TABLE 表名 MODIFY 列名 类型;

例:alter table emp modify em_id int;

第二步:(再将主键约束删除)

语法:ALTER TABLE 表名 DROP PRIMARY KEY;

例:alter table emp drop primary key;

二、外键约束

  1. 添加外键约束(DDL):

语法:ALTER  TABLE 表名 ADD CONSTRAINT 约束名FOREIGN  KEY( 列 名 ) REFERENCES 参照的表名(参照的列名);

例:alter table departments add constraint emp_fk foreign key(dept_id) references departments(deparment_id);

  1. 删除外键约束(DDL):

语法:ALTER TABLE 表名 DROP FOREIGN KEY 约束名;

例:alter table emp drop foreign key emp_fk;(约束名没有括号)

三、唯一性约束

  1. 添加唯一性约束(DDL):

语法:ALTER TABLE 表名 ADD CONSTRAINT 约束名UNIQUE(列名);

例:alter table emp add constraint emp_uk unique(emp_name);在emp_name中添加一个名为emp_uk的唯一性约束,可以为空值,但不能重复值。

  1. 删除唯一性约束(DDL):

语法:ALTER TABLE 表名 DROP KEY 约束名;

例:alter table emp drop key emp_uk;

 

四、非空约束

  1. 添加非空约束(DDL):

语法:ALTER TABLE 表名 MODIFY 列名 类型 NOT NULL;

例:alter table emp modify salary float(8,2) not null;

  1. 删除非空约束:(DDL)

语法:ALTER TABLE 表名 MODIFY 列名 类型 NULL;

例:alter table emp modify salary float(8,2)null;

五、创建表时添加约束

  1. 查询表中的约束信息(DDL):

语法:SHOW KEYS FROM 表名;

例:show keys from emp;

  1. 创建表时添加约束(DDL):

如:创建 depts 表包含 department_id 该列为主键且自动增长,

department_name 列不 允许重复,location_id 列不允含有空值。

Create table depts(department_id int primary key auto_increment,depatment_name varchar(30) unique,location_id int not null );

四、索引

一、普通索引

1.查询索引:

SHOW INDEX FROM table_name;

2.直接创建索引:

CREATE INDEX index_name ON table(column(length));

例:create index emp3_name_index ON emp3(name);

表示:为 emp3 表中的 name 创建一个索引,索引名为emp3_name_index;

3.添加索引:

ALTER TABLE table_name ADD INDEX index_name (column(length));

例:alter table emp3 add index emp3_address_index(address);

表示:修改 emp3 表,为 addrees 列添加索引,索引名为emp3_address_index;

4.删除索引:

DROP INDEX index_name ON tablename;

例:drop index emp3_address_index on emp3;

二、唯一索引

1.创建唯一索引:

注意:当列中有重复值时,不能够成功创建唯一索引

CREATE UNIQUE INDEX indexName ON table(column(length));

例:create unique index emp_name_index on emp(name);

表示:为 emp 表中的 name 创建一个唯一索引,索引名为emp_name_index。

2.修改表添加唯一索引:

ALTER TABLE table_name ADD UNIQUE indexName (column(length));

例:alter table emp add unique emp_salary_index(salary);

表示:修改 emp 表,为 salary 列添加唯一索引,索引名为

emp_salary_index。

3.创建表指定唯一索引:

CREATE TABLE `table` (COLUMN TYPE ,PRIMARY KEY (`id`), UNIQUE index_name (column(length)));

例:create table emp5(emp_id int primary key,name varchar(30),address varchar(30),unique emp5_name_index(name));

表示:创建 emp5 表,包含 emp_id,name,address 列,同时为 name 列创建唯一索引。索引名为 emp5_name_index。

三、主键索引

1.修改表添加主键索引:

ALTER TABLE 表名 ADD PRIMARY KEY(列名);

例:alter table emp add primary key(employee_id);

表示:修改 emp 表为 employee_id 添加主键索引。

2.创建表时指定主键索引:

CREATE  TABLE  `table` (COLUMN TYPE ,PRIMARY KEY(column));

例:create table emp6(employee_id int primary key

auto_increment,name varchar(20),address varchar(50));

表示:创建 emp6 表,包含 emp_id,name,address 列,同时为 emp_id

列创建主键索引。

四、组合索引

1.修改表添加组合索引:

ALTER TABLE table_name ADD INDEX index_name

(column(length),column(length));

例:alter table emp6 add index emp6_index_n_a(name,address);

表示:修改 emp6 表,为 name ,address 列创建组合索引。

2.创建表时创建组合索引:

CREATE TABLE `table` (COLUMN TYPE , INDEX index_name (column(length),column(length)));

例:create table emp7(emp_id int primary key auto_increment  ,

name varchar(20),address varchar(30),

Index emp7_index_n_a(name,address));

表示:创建 emp7 表,包含 emp_id,name,address 列,同时为

name,address 列创建组合索引。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值