目录
一、数据库
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;
二、外键约束
添加外键约束(DDL):
语法:ALTER TABLE 表名 ADD CONSTRAINT 约束名FOREIGN KEY( 列 名 ) REFERENCES 参照的表名(参照的列名);
例:alter table departments add constraint emp_fk foreign key(dept_id) references departments(deparment_id);
删除外键约束(DDL):
语法:ALTER TABLE 表名 DROP FOREIGN KEY 约束名;
例:alter table emp drop foreign key emp_fk;(约束名没有括号)
三、唯一性约束
添加唯一性约束(DDL):
语法:ALTER TABLE 表名 ADD CONSTRAINT 约束名UNIQUE(列名);
例:alter table emp add constraint emp_uk unique(emp_name);在emp_name中添加一个名为emp_uk的唯一性约束,可以为空值,但不能重复值。
删除唯一性约束(DDL):
语法:ALTER TABLE 表名 DROP KEY 约束名;
例:alter table emp drop key emp_uk;
四、非空约束
添加非空约束(DDL):
语法:ALTER TABLE 表名 MODIFY 列名 类型 NOT NULL;
例:alter table emp modify salary float(8,2) not null;
删除非空约束:(DDL)
语法:ALTER TABLE 表名 MODIFY 列名 类型 NULL;
例:alter table emp modify salary float(8,2)null;
五、创建表时添加约束
查询表中的约束信息(DDL):
语法:SHOW KEYS FROM 表名;
例:show keys from emp;
创建表时添加约束(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 列创建组合索引。