用语句操作数据库和数据表
新建:
库: CREATE DATABASE 数据库名
表: CREATE TABLE 表名
删除: DROP DATABASE 数据库名
DROP TABLE 表名
DROP DATABASE java11_new;
CREATE TABLE t_user(
-- 主键(不可重复,不可为空)
id INT PRIMARY KEY auto_increment,
-- 非空
phone VARCHAR(11) NOT NULL,
-- 非空
pwd VARCHAR(20) NOT NULL,
address VARCHAR(200),
birthday date,
deptno INT,FOREIGN KEY(deptno) REFERENCES dept(deptno)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 数据引擎
用工具建表
课程表
cno 课程id 主键 c1
cname 课程名称 java
c1 java
c2 mysql
1-n
学生表
sno 学号 主键
sname 姓名
1 申昊
2 孙欣
1-n
第三张表
学生-选课表
cno 课程编号(外键)
sno 学号(外键)
字符型
DECLLMAL(m,n) m是小数位加整数位 n为小数位
学校想做一个选课系统,其中涉及到课程表,学生表,请分别创建这两个表,自己思考表中应有的列及数据类型。
学校有一个选课系统,其中包括如下关系模式:
系(系编号: 主键,系名称: 唯一键,系主任: 非空约束,系所在校去:默认为浑南区)
班级(班级编号: 主键,班级名称: 唯一键,所属系: 外键)
创建学生表,包含如下属性:
学号 定长字符型 10位 主键
姓名 变长字符型 20位 非空
性别 定长字符型 2位
出生日期 日期型
所在班级
事务
1.前置任务
1)数据引擎:innodb
2)自动提交开关先关掉
查看自动提交开关
show variables like 'autocommit';
默认是on,现在是自动提交的,的把这个开关关闭
set autocommit =0;
show variables like 'autocommit';
2.测试
原表
insert into t_class VALUES(null,'java11');
UPDATE t_class SET cno='java_new' WHERE cno='java11';
COMMIT;-- 提交
原表
insert into t_class VALUES(null,'java11');
UPDATE t_class SET cno='java_new' WHERE cno='java11';
ROLLBACK;-- 回滚
set autocommit =1;
show variables like 'autocommit';