MySQL第一次作业

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>]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值