1.数据库建表修改表结构
创建数据库
CREATE DATABASE database_name;;
使用库
use 库名;
删除库
drop database 库名;
创建表
CREATE TABLE TAB_NAME(
字段1 类型 约束 默认值,
字段2 类型 约束 默认值,
字段n 类型 约束 默认值
);
NOT NULL 非空
UNIQUE 唯一
PRIMARY KEY 主键
FOREIGN KEY 外键
AUTO_INCREMENT 自增
定义表之后指定主键
ALTER TABLE 表名 ADD CONSTRAINT主键名 PRIMARY KEY(字段);
主键由多个字段联合组成,语法规则如下:
primary key(字段1,字段2,...字段n)
如果定义完表后也可以给某个字段添加唯一约束,语法如下:
ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE (约束字段);
修改表名
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
修改字段的数据类型
ALTER TABLE <表名> MODIFY <字段名> <数据类型>
修改字段名
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;
添加字段
ALTER TABLE <表名> ADD <新字段名> <新字段类型> <约束条件> [FIRST|AFTER 已存在字段名];
删除字段
ALTER TABLE <表名> DROP <字段名> ;
修改字段的排序位置
ALTER TABLE <表名> MODIFY <字段1> <数据类型> FIRST|AFTER <字段2>;
删除表的外键约束
ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;
更改表的存储引擎
ALTER TABLE <表名> ENGINE=<更改后的存储引擎名>;
删除数据表
DROP TABLE [IF EXISTS]表1, 表2,…表n;
2.数据表之间的关系
/*
一对一
人 身份证
1 1
*/
CREATE TABLE person(
pid INT PRIMARY KEY AUTO_INCREMENT,
pname VARCHAR(50),
pphone VARCHAR(50)
);
CREATE TABLE idcard(
cid INT PRIMARY KEY,
cnum VARCHAR(50),
cstart DATE,
cend DATE,
cpublish VARCHAR(200)
);
ALTER TABLE idcard ADD CONSTRAINT fk_card_person FOREIGN KEY(cid) REFERENCES person(pid);
/*
1.一对多
部门 员工
1 N
1 1
*/
CREATE TABLE department(
departid INT PRIMARY KEY AUTO_INCREMENT,
departname VARCHAR(50),
departnum INT DEFAULT 0,
departdesc VARCHAR(200)
);
CREATE TABLE employee(
empid INT PRIMARY KEY AUTO_INCREMENT,
empname VARCHAR(50),
empsex CHAR(2) DEFAULT '男',
empbirth DATE,
empphone VARCHAR(50),
deptid INT -- FK
);
/*
alter table tabname add constratin 约束名 foreign key(字段) references 主表
(主键);
*/
ALTER TABLE employee ADD CONSTRAINT fk_emp_dept FOREIGN KEY(deptid) REFERENCES department(departid);
/* 多对多的关系
用户 角色
1 N
N 1
N N
*/
CREATE TABLE users(
uid INT PRIMARY KEY AUTO_INCREMENT,
uname VARCHAR(50) NOT NULL UNIQUE,
upwd VARCHAR(50) NOT NULL,
ustatus INT
);
CREATE TABLE roles(
rid INT PRIMARY KEY AUTO_INCREMENT,
rname VARCHAR(50) NOT NULL
);
CREATE TABLE userroles(
uid INT ,
rid INT,
PRIMARY KEY(uid,rid)
);
ALTER TABLE userroles ADD CONSTRAINT fk_ur_user FOREIGN KEY(uid) REFERENCES users(uid);
ALTER TABLE userroles ADD CONSTRAINT fk_ur_role FOREIGN KEY(rid) REFERENCES roles(rid);
/*自关联:省市*/
CREATE TABLE cities(
cid INT PRIMARY KEY AUTO_INCREMENT,
cname VARCHAR(50),
pid INT ,
CONSTRAINT fk_pro_ci FOREIGN KEY(pid) REFERENCES cities(cid)
)
3.数据的crud操作
插入数据
INSERT INTO 表名 VALUES(val_list);
或
INSERT INTO 表名(col_list) VALUES(val_list);
插入多条记录
INSERT INTO 表名(col_list) VALUES(val_list1),(val_list2),(val_list3),(val_list4);
更新数据
UPDATE table_name SET col=val,col=val [WHERE <condition>];
/*WHERE后可以用and连接多个字段*/
删除数据
DELETE FROM table_name [WHERE <condition>];
查询数据
SELECT 字段列表 FROM 表1,表2... WHERE 表达式 GROUP BY 字段 HAVING 条件
ORDER BY 字段 LIMIT [<offset>,] <row count>]