学习MySQL之数据库操作(一)

时间:2023-03-09 02:44:42
学习MySQL之数据库操作(一)

所有代码,均为自学时用到的测试与注释,知识细节或知识点不会面面俱到,亦不会有任何讲解,只做为自己学习复习用。

##数据库操作

##创建数据库 myTest ,并将数据库字符集设为GBK
CREATE DATABASE myTest CHARSET gbk; ##进入数据库 myTest
USE myTest ; ##创建数据库表 t_dept,并将表的字符集设为GBK,同时,char和test字段的字符集,自动变为gbk
CREATE TABLE t_dept (
deptno INT (11) AUTO_INCREMENT, ##设置自增
dname VARCHAR (20) NOT NULL, ##设置
loc VARCHAR (200),
CONSTRAINT pk_deptno PRIMARY KEY (deptno), ##设置主键
UNIQUE KEY uk_dname(dname), ##设置唯一索引
FULLTEXT KEY index_loc (loc(20)) ##设置全文索引
) DEFAULT CHARSET gbk; ##设置字符集 ##创建数据库表 t_diary,默认字符集(如果前面不将数据库字符集改为GBK,那么存储中文时会报错)
CREATE TABLE t_diary (
diaryno INT (11) AUTO_INCREMENT,
tablename VARCHAR (20),
diarytime DATETIME,
CONSTRAINT pk_diaryno PRIMARY KEY (diaryno), ##设置主键
INDEX index_tablename (tablename(20) ASC) ##设置普通索引
) ; ##查看表 t_dept 的字段,查看表 t_diary 的定义
DESC t_dept;
SHOW CREATE TABLE t_diary; ##将t_diary表与其字段的字符集改为GBK
ALTER TABLE t_diary CHANGE CHARSET gbk;
ALTER TABLE t_diary CHANGE tablename tablename VARCHAR(20) CHARSET gbk; ##创建视图 view_dept,取表 t_dept(deptno,dname)字段,并按deptno的降序排列
CREATE VIEW view_dept AS
SELECT deptno, dname FROM t_dept ORDER BY deptno DESC ; ##查看视图的定义
SHOW CREATE VIEW view_dept; ##创建触发器 tri_diarytime
CREATE TRIGGER tri_diarytime
BEFORE INSERT ON t_dept FOR EACH ROW
INSERT INTO t_diary (tablename, diarytime) VALUES ('t_dept', NOW()) ; ##向表 t_dept 插入测试数据
INSERT INTO t_dept(dname,loc) VALUES ('张三','张三会爬树');
INSERT INTO t_dept(dname,loc) VALUES ('李四','李四会钓鱼');
INSERT INTO t_dept(dname,loc) VALUES ('王五','王五会开车');
INSERT INTO t_dept(dname,loc) VALUES ('赵六','赵六会拍马');
INSERT INTO t_dept(dname,loc) VALUES ('周七','周七会骑驴');
INSERT INTO t_dept(dname,loc) VALUES ('武八','武八是同城'); ##查看 t_dept 表的插入结果
SELECT * FROM t_dept;
##查看触发器向 t_diary 表中插入的结果
SELECT * FROM t_diary;
##查看视图 view_dept 中的结果
SELECT * FROM view_dept;