数据库的创建
create database database_name;
show databases; ##查看数据库##
数据表的创建
use database_name;
create table db_table(
id int(11) primary key,
name varchar(25),
dep_id int(11),
salary float(8,2)
);
show create table table_name:
desc table_name;
常用的数据类型
1.对于编码id的数据常用int(对应位数)
2.对于个人名称,部门名称,公司名称常用varchar(确定较大的位数)
3.对于数值型数据如收入,人数,体重,身高常用float(8,2)
4.对于精度更高的数值型数据如经纬度,仪器数据double(M,D),decimal(M,D)
5.对于时间数据常用DATETIME:YYYY-MM-DD HH:MM:SS
6.对于时间戳数据如股市数据用TIMESTAMP 20170915153000
7.对于选择有限的数据如性别可以使用ENUM('MALE','FEMALE')
主键约束
主键约束要求主键所在列唯一且非空,保证每行的唯一性。
主键的组成形式包括:1.使用某一列作为主键,2.使用组合列作为主键(例如将职工姓名列+职工部门id列组合)
create table employee(
id int(11) primary key
);
外键约束
外键所设置的表称为从表,外键对应主表的主键。一个表中可以存在多个外键。
create table deposite(
d_id int primary key not null auto_increment,
c_id char(6),
b_id char(5),
dep_date date,
dep_type char(1),
amount decimal(8,2),
constraint fk_cid foreign key(c_id) references customer(c_id),
constraint fk_bid foreign key(b_id) references bank(b_id)
);
非空约束
有些列必须要有数据的输入,所以在表格设置的时候,得使用非空约束。
create table tb_emp(
id int(10) primary key,
name varchar(20) not null,
depid int(10),
salary float
constrain fk_emp_dept foreign key(depid) references tb_dept(id)
唯一性约束
除了主键列外,还需要一些列保存一些具有唯一性的列,使用关键词UNIQUE。
create table tb_dept(
id int(10) primary key,
dep_name varchar(20) unique, # 部门名称不能重复
salary float
);
默认约束
有些数据当为空值时,有默认值代替。
create table tb_emp(
id int(10) primary key,
name varchar(50) not null,
sex varchar(10) default 'male'
);
自动增长约束
例如编号id每一行都会自动增长1。
create table tb_emp(
id int(10) primary key auto_increment,
name varchar(20) not null,
sex enum('male','female'),
depid int(10)
constrain fk_emp_dept foreign key(depid) references dept(id)
修改已经存在表的结构
修改表中的列名,修改表中列的类型
在表中添加一个列(可设定该列排放位置),在表中删除一个列
使用alter命令:rename修改表名,modify(修改字段),change(改变字段),ADD添加字段,DROP删除字段
alter table tb_dept rename tb_department; 修改表名
alter table tb_dept modify name varchar(30);仅修改字段数据结构,不可改列名
alter table tb_dept modify name varchar(30) first;还可以修改字段在表中的排序位置
desc tb_dept; 查看表各字段结构
alter table tb_dept change location loc varchar(30);既可以改列名又可以更改字段的数据结构
alter table tb_department ADD managerId int(10) not null first; 增加一个字段
alter table tb_department drop column2;删除一个字段