————考完试,例常整理笔记,考试中选择题遇到了栈和集的内容,复习的时候没有遇到,如果有也要考的朋友记得复习哟。
一、Mysql基本函数
二、数据定义1.聚合函数COUNT( )
SUM( )
AVG( )
MAX( )
MIN( )
2.数学函数ABS
FLOOR
RAND
SQRT
TRUNCATE(X,Y)
ROUND(X,Y)
3.字符串函数UPPER、UCASE
LEFT(s,n)
SUBSTRING(s,n,len)
4.日期和时间函数CURDATE()、CURRENT_DATE()
CURTIME()、CURRENT_TIME()
三、数据查询1.创建数据库
CREATE DATABASE [IF NOT EXISTS] db_name
[[DEFAULT] CHARACTER SET[=] charset_name
[DEFAULT] COLLATE[=] collation_name];
2.修改数据库
ALTER DATABASE db_name
[DEFAULT] CHARACTER SET[=] charset_name
[DEFAULT] COLLATE[=] collation_name;
3.删除数据库
DROP DARABASE [IF EXISTS] db_name;
4.定义表
CREATE TABLE tbl_name
(字段名1 数据类型[列级完整性约束条件][默认值]
[,字段名2 数据类型[列级完整性约束条件][默认值]]
[,......]
[,表级完整性约束条件]
)[ENGINE=引擎类型];
5.查看表
SHOW TABLES [{FROM} IN} db_name];
SHOW COLUMNS {FROM} IN} tb_name [{FROM} IN} db_name];
{DESCRIBE|DESC} tb_name;
SHOW CREATE TABLE tb_name;
6.修改表
ALTER TABLE tb_name ADD[COLUMN] 新字段名 数据类型
[约束条件][FIRST|AFTER已有字段名](约束位置)
ALTER TABLE tb_name CHANGE COLUMN 原字段名 新字段名 数据类型[约束条件];
ALTER ..............ALTER COLUMN 字段名 {set|drop}DEFAULT(用于修改默认值);
ALTER ..............MODIFY COLUMN 字段名 数据类型 [约束条件] [FIRST|AFTER 字段];
ALTER ..............DROP COLUMN 字段名;
ALTER TABLE 原表名 RENAME TO 新表名;
7.定义实体完整性
①主键约束(单主键,复合主键不包含多余列)
列级完整性约束
表级完整性约束
②完整性约束命名
CONSTRAINT <symbol>
{PRIMARY KEY(主键字段列表)
|UNIQUE(候选字段列表)
|FOREIGN KEY(外键字段列表)
|CHECK(约束条件表达式)
③候选键约束
8.定义参照完整性
①列级完整性约束方式classNo CHAR(6) REFERENCES tb_class(classNo);
②表级完整性约束方式CONSTRAINT FK_student FOREIGN KEY(classNo) REFERENCE tb_class(classNo)
9.用户定义完整性
①设置非空约束 NOT NULL
②CHECK 约束
10.更新完整性约束
①删除ALTER TABLE tb_name DROP FOREIGN KEY <外键约束名>;
ALTER TABLE <表名> DROP PRIMARY KEY;
ALTER TABLE <表名> DROP INDEX className;
②添加ALTER TABLE tb_student ADD CONSTRAINT PK_student PRIMARY KEY(studentNo);
ALTER TABLE tb_student ADD CONSTRAINT UQ_student UNIQUE KEY(studentNo);
四、数据更新1.SELECTSELECT [ALL|DINSTINCT] 目标列表达式 FROM <表名或视图名>
[WHERE <条件表达式>]
[GROUP BY<列名1>[HAVING <条件表达式>]
[ORDET BY<列名2>[ASC|DESC]]
[LIMIT [m,],n];
2.EXISTS双重否定句
查询选修了所有课程的学生姓名
SELECT studentName FROM tb_student X
WHERE NOT EXISTS
(SELECT * FROM tb_cousrse C
WHERE NOT EXISTS
(SELECT * FROM tb_score
WHERE studentNo=X.studentNo
AND courseNo=C.courseNo));
五、索引1.插入数据
INSERT INTO tb_name(column_list) VALUES(value_list1),(value_list2),.....;
2.插入查询结果
INSERT INTO tb_name1(column_list1) SELECT (column_list2) FROM tb_name2 WHERE(condition);
3.REPALCE替换已有同名主键
REPLACE INTO tb_name(column_list) VALUES(value_list);
4.修改数据记录
UPDATE tb_name SET column1=value1,...[WHERE<conditon>];
5.删除
DELETE FROM tb_name[WHERE<condition>];
TRUNCATE[table] tb)name;
六、视图1.普通索引 INDEX、KEY
唯一性索引 UNIQUE
主键索引 PRIMARY KEY
聚簇索引
全文索引 FULLTEXT 只能创建在varchar、text
2.单例索引
组合索引
3.创建索引
①创建普通索引
CREATE INDEX index_stu ON db_school.tb_student(studentNo);
②创建基于字段值前缀字符的索引
CREATE INDEX index_course ON db_school.tb_course(courseName(3) DESC);
③创建组合索引
CREATE INDEX index_book ON db_school.tb_book(bcalssNo,bookName DESC);
④添加
ALTER TABLE db_school.tb_student1 ADD INDEX idx_studentName(studentName);
七、触发器1.创建视图
CREATE[OR REPLACE] VIEW view_name[(column_list)]
AS SELECT_statement
[WITH[CASCADED|LOCAL] CHECK OPTION]
2.修改视图
ALTER VIEW view_name[(column_list)]
AS select_statement
[WITH[CASCADED|LOCAL] CHECK OPTION];
八、创建事件1.创建触发器
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_body;
2.删除触发器
DROP TRIGGER[IF EXISTS][schema_name] trigger_name;
CREATE EVENT [IF NOT EXISTS] event_name
ON SCHEDULE EVERY INTERVAL
STARTS
ENDS
[ENABLE|DISABLE|DISABLE ON SLAVE]
DO
BEGIN
END
九、错题集录
1.修改列名name为username
alter table tb_admin change column name username varchar(10)修改列名和类型
... drop column name删除列
... modify name varchar(10)修改类型
alter table tb_admin rename tb_test修改表名
2.设置表的默认字符集关键字
alter table table_name default character set character_name;
3.if not exists
4.创建表xs的一个名为student的拷贝
create table student like xs;
5.修改表名的两种方法
alter table table_name1 rename table_name2;
rename table table_name1 to table_name2;
6.备份数据库的命令
mysqldump
7.创建事件
create event event_test
on schedule every 1 day
starts curdate() +interval 5 day
ends curdate() + interval 1 month
do truncate table test;
8.推理规则
传递函数依赖
9.游标在存储过程中的应用
游标是一个select语句检索出来的结果集,在存储了游标后,应用程序或用户就可以根据需要滚动或浏览其中数据。
10.数据库设计
需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库的实施,数据库的运行与维护
11.客户端管理工具
命令行客户端、图形化管理工具phpadmin
12.使用 select into outfile 备份数据库 db_test 中表content的全部数据到c:/backup/backupcontent.txt,要求字段如果是字符则用双引号标注,字段之间用逗号隔开,每行以问号为结束标志。
select * from content
into 'c:/backup/backupcontent.txt'
fields terminated by ','
optionally enclosed by'"'
lines terminated by '?';
13.delete from table_name where ...;
14.SQL语言又称结构化查询语言
15.数据库系统的核心是数据库管理系统
16.现实世界中事物的特征在实体-联系模型中使用属性描述
17.使用truncate删除表中记录
truncate table table_name
18.插入数据
insert into table_name(field1,field2,...) values(value1,value2,...);
19.创建账户并授权
create user 'mrsoft' indetified by 'mr';
grant select on sxcj.* to 'mrsoft';
20.修改表格数据
update table_name set salary=5000;
set salary=salary+100;
21.mysql所支持的触发器有select、delete、update
22.数据库系统三级模式结构;概念模式、外模式、内模式
23.php Hypertext preprocessor超级文本预处理缩写,是一种html内嵌式语言,是一种在服务器端执行的嵌入式
html文档的脚本语言,类似C语言被广泛运用。
24.PHP进行mysql数据库编程的基本步骤
(1)建立与mysql数据库服务器的连接
(2)选择要对其进行操作的数据库
(3)再执行相应的数据库操作,包括对数据的添加、删除、修改、查询
25.创建过程
delimiter //
create procedure procedure_email(in user_name varchar(50),in e_mail varchar(50))
begin
update content set email=e_mail where username=user_name;
end//
26.ignore关键字即使在更新过程中出现错误,更新语句也不会中断。
27.事件就是需要在指定的时刻才被执行的某些特定任务,通常是一些确定的SQL语句。
事件作用:事件可以根据需要在指定的时刻被事件调度器调用执行,并以此可取代原先只能由操作系统的计划任务来执行的工作。
事件和触发器的区别:两者都是在某些事情发生的时候才被启动,因此时间也称作临时触发器。其中事件是基于特定时间周期触发,触发器是基于某个表所产生的事件触发、
28.
create event e_test
on schedule every 1 month
starts curdate()+interval 1 month
ends '2019-12-31'
do
begin
if yeat(curdate())<2013 then
delete from content
where username='s';
end if;
end//
29.触发器
create trigger content_delete_trigger after delete
on content for each row set str='old content delete!';
30.mysql支持关系模型中的实体完整性、参照完整性、用户定义完整性三种不同的完整性约束。
31.筛选含有某字符发信息
select * from table_name where s_name like '%j%';
32.数据库系统的核心和基础是数据模型
33.E-R图提供了表示信息世界中实体、属性和联系的方法
34.数据库系统的运行与应用结构有客户/服务器(C/S)和浏览器/服务器(B/S)
35.外模式与内模式之间的映射实现了数据库的逻辑独立性
36.ER图(Entity Relationship Digram)实体联系图
矩形框:实体名 椭圆:属性 菱形:实体间联系
37.数据库。数据库管理系统与操作数据库的应用程序,加上支撑它们的硬件平台、软件平台与数据库有关的人员一起构成了一个完整的数据库系统。
38.查询条件:姓名不是null的jilu
39.建立主键的三种方法
(1)id int primary key
(2)id int,
...
primary key(id)
(3)alter table table_name add constraint pk_name primary key(id)
40.正则表达式 regexp
41.设置外键能够实现实体完整性
42.使用distinct关键字可以把重复行屏蔽
43.having 可以从group by分组的结果中再次使用条件表示式进行筛选
select region from table group by region having area>100
44.为数据表创建索引的目的是提高查询的检索性能
45.格式化日期的函数是提高查询的检索性能
46.sql语言是非过程化语言
47.between 20 and 30 包括20和30
48.sql语言四大类
(1)数据库查询语言DQL select
(2)数据库操纵语言DML update insert delete
(3)数据库定义语言DDL create table/view/index/syn/cluster
(4)数据库控制语言DCL grant/rollback/commit
49.正则表达式的转义符是\
50.关系数据库中,主键是为标识表中唯一的实体
51.试图是一种常用的数据对象,它是提供查看和存放数据的另一种途径
52.逻辑运算符优先级排列 not/and/or
53.数据表结构:字段、类型、主键、外键、索引
54.数据库系统中有:层次模型、网状模型、关系模型
55.优先级 算术>比较>逻辑
56.事物特性:独立性、持久性、原子性、一致性
57.执行结尾 \g \G \;
58.select 通配符
(1)--a 第三个字符是a且仅有三个字符
(2)--a% 第三个字符是a
(3)[2-4]% 第一位为2或者4
(4)[^ACD]第一个字符不是ACD
59.当所查询的表不在当前数据库时,可用数据库,所有者名称,对象名称格式来指出表或者视图对象。
60.当某字段要适用auto_increment属性,该字段必须是int类型,还必须是关键字段或索引字段。
61.在select语句的from字句中最多可以指定256个表或者视图
62.ODBC是一种开放式数据库连接
63.在insert触发器中,可以引用一个名为new虚拟表,访问被插入行。
在delete触发器中,可以引用一个名为old虚拟表,访问被删除行。
64.存储过程是一组预先定义并编译的transact sql语句
65.数据库信息运行安全采取的主措施有
风险分析、审计跟踪、备份与恢复、应急
66.将student表中的结构(索引和主键)和数据复制到一个新的student1表中
create table student1 like student;
insert into student1 select * from student;
67.set names gb2312;
68.内连接 select 目标1,目标2
from table1 inner join table2
on 连接条件
where 过滤条件
select 目标1,目标2
from table1,table2
where 连接条件
and 过滤条件
交叉连接select * from table1 cross table2
select * from table1,table2
外连接select 目标1,目标2,...,目标N
from table1,table2 left outer join table3,table4
on 连接条件