create database students; -- 创建数据库
show databases; -- 查看数据库
drop database students; -- 删除数据库
use students; -- 使用use选用数据库
-- 数据库类型
date -- 日期2014-09-18
time -- 时间08:42:30
datetime -- 日期时间2014-09-18 08:42:30
timestamp -- 自动存储修改的时间
year -- 年份
tinyint -- 1byte (-128~127)
smallint -- 2byte (-32768~32767)
mediumint -- 3byte (-8388608~8388607)
int -- 4byte (-2147483648~2147483647)
bigint -- 8byte (+-9.22*10的18次方)
float(m,d) -- 4byte 单精度浮点数,m总个数,d小数位
double(m,d) -- 8byte 双精度浮点数,m总个数,d小数位
decimal(m,d) -- decimal是存储为字符串的浮点数
char(n) -- 固定长度,最多255个字符
varchar(n) -- 可变长度,对多65535个字符
tinytext -- 可变长度,最多255个字符
text -- 可变长度,最多65535个字符
mediumtext -- 可变长度,最多2的24次方-1个字符
longtext -- 可变长度,最多2的32次方-1个字符
-- 约束 *********
not null -- 非空
unique key -- 唯一键 key可以不写
primary key -- 主键 能够唯一标识一个事物的一个字段或多个字段的组合,被称为主键
foreign key references -- 外键 如果一个表中的若干个字段是来自另外若干个表的主键或唯一键,则这若干个字段就是外键
auto_increment -- 标识列自增长
-- 创建表实例
create table constraint_test(
eid int primary key auto_increment, -- 一个表只能有一个auto_increment,并且该属性必须为主键,可以是任何整数类型,默认从1开始。
ename varchar(20) unique key not null,
esex char(2) not null,
-- did int references department(did) -- 创建外键的第一种方式error
did int,
foreign key (did) references department(did) -- 创建外键的第二种方式
)auto_increment = 001;
create table department(
did int primary key auto_increment,
dname varchar(20) unique key not null
);
use students;
(
select * from department;
insert into department values(did,'人事部');
insert into department values(did,'研发部');
insert into department values(did,'行政部');
insert into department values(did,'销售部');
)
(
select * from constraint_test;
insert into constraint_test values(eid,'张三','男',2);
insert into constraint_test values(eid,'李四','男',1);
insert into constraint_test values(eid,'王五','男',3);
insert into constraint_test values(eid,'赵六','男',4);
insert into constraint_test values(eid,'小娟','女',2);
)
drop table department; -- 删除表
desc department; -- 查看表结构
describe constraint_test; -- 查看表结构第二种方式
-- 修改表结构
alter table 表名 modify 列名 列类型 -- 修改列类型
alter table 表名 add 列名 列类型 -- 增加列
alter table 表名 drop 列名 -- 删除列
alter table 表名 change 久列名 新列名 列类型 -- 列改名
alter table 表名 rename 新表名 -- 更改表名
rename table 表明 to 新表名 -- 更改表名
-- 修改表结构实例
(
alter table department modify dname char(20) unique key not null; -- 修改表类型,默认取消非空约束
alter table department add sum smallint; -- 添加列sum
alter table department drop sum; -- 删除列sum
alter table department change sum department_sum int; -- 把列名sum改为department_sum
alter table constraint_test rename c_t; -- 把表名constraint改为c_t
rename table department to de; -- 把表名department改为de
alter table c_t rename constraint_test; -- 把表名c_t改为constraint
rename table de to department; -- 把表名de改为department
)
drop table department; -- 删除表
desc department; -- 查看表结构
describe constraint_test; -- 查看表结构第二种方式
-- 修改表结构
alter table 表名 modify 列名 列类型 -- 修改列类型
alter table 表名 add 列名 列类型 -- 增加列
alter table 表名 drop 列名 -- 删除列
alter table 表名 change 久列名 新列名 列类型 -- 列改名
alter table 表名 rename 新表名 -- 更改表名
rename table 表明 to 新表名 -- 更改表名
-- 修改表结构实例
(
alter table department modify dname char(20) unique key not null; -- 修改表类型,默认取消非空约束
alter table department add sum smallint; -- 添加列sum
alter table department drop sum; -- 删除列sum
alter table department change sum department_sum int; -- 把列名sum改为department_sum
alter table constraint_test rename c_t; -- 把表名constraint改为c_t
rename table department to de; -- 把表名department改为de
alter table c_t rename constraint_test; -- 把表名c_t改为constraint
rename table de to department; -- 把表名de改为department
)