MySQL学习笔记
来源:互联网 发布:作业调度算法 编辑:程序博客网 时间:2024/06/06 02:26
2014/1/8
今天尝试用DOS方式执行了许多MySQL的命令,顿然命令行的操作速度比GUI方式大很多,学到了不少东西,总结关键的几点如下;
1.建议含有外键约束的两张表worker,department.
create table department(d_id int(4) primary key auto_increment,
d_name varchar(10)
);
create table worker(id int(4) primary key auto_increment,
name varchar(20) not null,
d_id int(4) not null,
constraint worker_fk foreign key(d_id)
references department(d_id)
);
个人理解:worker表里除了自己的主键外还有一个外键,它定义于department,故称d_id是department的主键,是worker的外键。
定义约束的语法:constraint 约束名 foreign key(字段名) references 其他表(字段名)
2.显示一张表的结构有两种方法 describe table或者 show columns from table,其中第二种方法执行速度更快
3.修改字段birthday到sex字段前的语法为:alter table teacher modify birthday datetime after name(name开始是在sex之前)
这里注意birthday 的数据类型 datetime不能缺少!!
4.查询一类事物所属的类型的种类,比如所有记录都有type字段:可以用 select distinct type from table;
5.table1.name = table2.name 此处的等号就是传说的等值连接;
2014/1/11
1.修改表字段名称 ALTER TABLE tb_name
CHANGE COLUMN name name1 VARCHAR(20) NOT NULL ;
2.如何设置数据库编码格式 set names utf8
3.如何增加外键
ALTER TABLE `test`.`tb_worker`
ADD CONSTRAINT `worker_fk1`
FOREIGN KEY (`id`)
REFERENCES `test`.`tb_admin` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
4.获取目前的时间函数、逆序函数、取小数点后四舍五入函数、取小数点后不四舍五入函数
依次为CURRENT()或CURRENT_TIME()、REVERSE()、ROUND(x,y)、TRUNCATE(x,y)
5.左连接和右连接的理解。
左连接保留左边表中不符合条件的记录,同时用NULL填充属于右表中的字段。(所谓不符合条件,即连接的字段左表有,右表没有)
6.select ANY 和 ALL区别
ANY是只要其中任何一个满足条件即可。ALL是指全部都要满足条件。
7.比通配符更强大的工具---正则表达式。
2014/1/12
1.穿件存储过程时,如果有begin和end的嵌套,则每个end后面必须加“;"号。
2.全局变量即会话变量,前面必须有@号
3.局部变量需要声明后再使用,会话变量不声明即可使用。
4.游标的理解。
5.循环的使用while loop repeat。其中repeat比较特殊,至少执行一次循环体。存储过程不支持for循环
6.触发器的使用。触发器目前可以应用到日志表的操作上,当执行某一个操作时,可以通过触发器向日志表中插入相关的时间、操作类型等信息。
注意:一张表在相同时间、相同的操作类型只能创建一个触发器,如after insert触发器只能创建一个。
print '删除该学生绩点信息中...';
delete from stud_jd WHERE stud_jd.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生平均分信息中...';
delete from stud_pjf WHERE stud_pjf.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生贫困等级信息中...';
delete from stud_pkdj WHERE stud_pkdj.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生入党信息中...';
delete from stud_rd WHERE stud_rd.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生学生组织任职信息中...';
delete from stud_rz WHERE stud_rz.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生助学信息中...';
delete from stud_zx WHERE stud_zx.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生助学金信息中...';
delete from stud_zxj WHERE stud_zxj.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生家庭信息中...';
delete from stud_fam WHERE stud_fam.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生备注信息中...';
delete from stud_comment WHERE stud_comment.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生班级任职信息中...';
delete from stud_classjob WHERE stud_classjob.Sno in( SELECT Sno FROM deleted);
print '删除成功';
今天尝试用DOS方式执行了许多MySQL的命令,顿然命令行的操作速度比GUI方式大很多,学到了不少东西,总结关键的几点如下;
1.建议含有外键约束的两张表worker,department.
create table department(d_id int(4) primary key auto_increment,
d_name varchar(10)
);
create table worker(id int(4) primary key auto_increment,
name varchar(20) not null,
d_id int(4) not null,
constraint worker_fk foreign key(d_id)
references department(d_id)
);
个人理解:worker表里除了自己的主键外还有一个外键,它定义于department,故称d_id是department的主键,是worker的外键。
定义约束的语法:constraint 约束名 foreign key(字段名) references 其他表(字段名)
2.显示一张表的结构有两种方法 describe table或者 show columns from table,其中第二种方法执行速度更快
3.修改字段birthday到sex字段前的语法为:alter table teacher modify birthday datetime after name(name开始是在sex之前)
这里注意birthday 的数据类型 datetime不能缺少!!
4.查询一类事物所属的类型的种类,比如所有记录都有type字段:可以用 select distinct type from table;
5.table1.name = table2.name 此处的等号就是传说的等值连接;
2014/1/11
1.修改表字段名称 ALTER TABLE tb_name
CHANGE COLUMN name name1 VARCHAR(20) NOT NULL ;
2.如何设置数据库编码格式 set names utf8
3.如何增加外键
ALTER TABLE `test`.`tb_worker`
ADD CONSTRAINT `worker_fk1`
FOREIGN KEY (`id`)
REFERENCES `test`.`tb_admin` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
4.获取目前的时间函数、逆序函数、取小数点后四舍五入函数、取小数点后不四舍五入函数
依次为CURRENT()或CURRENT_TIME()、REVERSE()、ROUND(x,y)、TRUNCATE(x,y)
5.左连接和右连接的理解。
左连接保留左边表中不符合条件的记录,同时用NULL填充属于右表中的字段。(所谓不符合条件,即连接的字段左表有,右表没有)
6.select ANY 和 ALL区别
ANY是只要其中任何一个满足条件即可。ALL是指全部都要满足条件。
7.比通配符更强大的工具---正则表达式。
2014/1/12
1.穿件存储过程时,如果有begin和end的嵌套,则每个end后面必须加“;"号。
2.全局变量即会话变量,前面必须有@号
3.局部变量需要声明后再使用,会话变量不声明即可使用。
4.游标的理解。
5.循环的使用while loop repeat。其中repeat比较特殊,至少执行一次循环体。存储过程不支持for循环
6.触发器的使用。触发器目前可以应用到日志表的操作上,当执行某一个操作时,可以通过触发器向日志表中插入相关的时间、操作类型等信息。
注意:一张表在相同时间、相同的操作类型只能创建一个触发器,如after insert触发器只能创建一个。
print '删除该学生绩点信息中...';
delete from stud_jd WHERE stud_jd.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生平均分信息中...';
delete from stud_pjf WHERE stud_pjf.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生贫困等级信息中...';
delete from stud_pkdj WHERE stud_pkdj.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生入党信息中...';
delete from stud_rd WHERE stud_rd.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生学生组织任职信息中...';
delete from stud_rz WHERE stud_rz.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生助学信息中...';
delete from stud_zx WHERE stud_zx.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生助学金信息中...';
delete from stud_zxj WHERE stud_zxj.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生家庭信息中...';
delete from stud_fam WHERE stud_fam.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生备注信息中...';
delete from stud_comment WHERE stud_comment.Sno in( SELECT Sno FROM deleted);
print '删除成功';
print '删除该学生班级任职信息中...';
delete from stud_classjob WHERE stud_classjob.Sno in( SELECT Sno FROM deleted);
print '删除成功';
0 0
- 【MySQL】MySQL学习笔记
- 【mysql】mysql学习笔记
- Mysql学习笔记 --- mysql数据类型
- MySQL学习笔记--MySQL编程
- JBoss-MySql学习笔记
- mysql学习笔记
- Mysql学习笔记(1)
- Mysql学习笔记
- MySQL学习笔记
- Tomcat Mysql 。。。学习笔记
- mysql学习笔记
- mysql DB(学习笔记)
- MySQL 学习笔记一
- MySQL学习笔记
- mysql学习笔记
- mysql学习笔记
- MySQL学习笔记
- MySql学习笔记
- Oracle Flashback技术总结
- 在oracle中where 子句和having子句中的区别
- Where are you from? 你会怎么回答?[摘自沪江英语网]
- Leetcode--Maximum Product Subarray
- [Leetcode] Valid Parentheses
- MySQL学习笔记
- [树莓派内核学习]u-boot移植-barebox
- SCN
- 汪丁丁:互联与深思(第三届新媒体变革系列论坛第一期)
- SOJ 2309: In the Army Now 树状数组求逆序对
- UVA 10673 - Play with Floor and Ceil (扩展欧几里得求方程的解)
- 25匹马的角逐
- 创建控制文件resetlogs和noresetlogs的区别
- 二分查找杨氏矩阵