一、数据库系统概述
1.数据库(DB)是一种专门存储信息和维护信息的容器,严格地说数据库是“按照数据结构来组织、存储和管理信息的仓库”。
2.数据库管理系统,管理数据库的软件。具有对数据存储、安全、一致性、并发操作、恢复和访问等功能。
数据词典(系统目录),也是一种数据,只不过这些数据记录的是数据库中存放的各种对象的定义信息和其他一些辅助管理信息,包括名字、结构、位置、类型等。这些数据被称为元数据。
二、数据管理主要经历过程
1.手工管理阶段
2.文件管理阶段
3.数据管理阶段
三、数据库的特征
1.数据结构化
2.实现数据共享
3.减少数据冗余
4.数据独立性
四、数据库的类型
1.网状型数据
2.层次数据库
3.关系型数据库:关系数据库是指一些相关的表和其他数据库对象的集合。
•PRIMARY KEY,指定字段为主键。
•AUTO_INCREMENT,指定字段为自动增加字段。
•INDEX,为字段创建索引。
•NOT NULL,字段值不允许为空。
•NULL,字段值可以为空。
•COMMENT,设置字段的注释信息。
•DEFAULT,设置字段的默认值。
•可以使用ALTER
TABLE语句修改表的结构,包括添加列、修改列属性和删除列等操作。
对表的操作
•ALTER
TABLE 表名 ADD列名 数据类型和长度 列属性
•ALTER
TABLE 表名 MODIFY列名 新数据类型和长度 新列属性
•ALTER
TABLE 表名 DROP
COLUMN 列名
修改表:
•使用ALTER
TABLE语句向表中添加列的基本语法如下:
[if ppt]•[endif]
ALTER TABLE表名 ADD 列名
数据类型和长度 列属性
•使用ALTER
TABLE语句在表Emp中增加一列,列名为Tele,数据类型为varchar,长度为50,列属性为允许空,具体语句如下:
[if ppt]•[endif]
ALTER TABLEEmp ADD Tele VARCHAR(50) NULL
•使用ALTER
TABLE语句修改列属性的基本语法如下:
[if ppt]•[endif]
ALTER TABLE表名 MODIFY 列名
新数据类型和长度 新列属性
•使用ALTER
TABLE语句在表Emp中修改Tele列的属性,将数据类型为CHAR,长度为50,列属性为允许空。具体语句如下:
ALTER TABLE Emp MODIFY Tele CHAR(50) NULL
•使用ALTER
TABLE语句删除列的基本语法如下:
ALTER TABLE 表名 DROP COLUMN 列名
•使用ALTER
TABLE语句在表Emp中删除Tele列。具体语句如下:
ALTER TABLE Emp DROP COLUMN Tele
•事务(Transaction)概念
事务:也称工作单元,是由一个或多个SQL语句所组成的操作序列,这些SQL语句作为一个完整的工作单元,要么全部执行成功,要么全部执行失败。在数据库中,通过事务来保证数据的一致性
•事务特征可用四个字母的缩写表示:即ACID
1.原子性
2.一致性
3.隔离性
4.持久性
MySQL的事务处理主要有两种方法
1.用begin,rollback,commit来实现
begin开始一个事务
rollback事务回滚
commit 事务提交
2.直接用set来改变MySQL的自动提交模式
MySQL默认是自动提交的,也就是你提交一个sql,就直接执行!可以通过
set autocommit = 0 禁止自动提交
set autocommit = 1 开启自动提交
–结构化查询语言可分为5类:
1.数据查询语言
2.数据操作语言
3.事务处理语言
4.数据控制语言
5.数据定义语言
字符串函数:
•CHAR_LENGTH(str):返回字符串str的所包含字符个数;
•LENGTH(str):返回字符串str的长度;
•CONCAT(s1,s2,...): 字符串连接;
•CONCAT_WS(x,s1,s2,…):字符串连接, x是其它参数的分隔符;
•INSERT(s1,x,len,s2) :返回字符串s1,s1中插入字符串s2;
•LOWER (str)|LCASE (str):将字符串全部转换成小写字母;
•UPPER(str)|UCASE(str):将字符串全部转换成大写字母;
•LEFT(s,n):返回最左边指定长度的字符;
•RIGHT(s,n):返回最右边指定长度的字符;
•LPAD(s1,len,s2)| RPAD(s1,len,s2) :填充字符串函数;
•TRIM(s1 FROM s)|LTRIM(s)|RTRIM(s):删除空格函数;
•REPEAT(s,n):重复生成字符串函数;
•SPACE(n):返回一个由n个空格组成的字符串;
•REPLACE(s,s1,s2):字符串替换函数;
•STRCMP(s1,s2):比较字符串大小函数;
•SUBSTRING(s,n,len):获取子串函数;
•LOCATE(str1,str)|POSITION(str1
IN str)|INSTR(str, str1):匹配子串开始位置函数;
•REVERSE(s):将字符串s反转;
•ELT(N,字符串1,字符串2,字符串3,…):返回指定位置函数;
日期和时间函数:
•CURDATE()和CURRENT_DATE():获取当前日期函数;
•NOW():返回服务器的当前日期和时间;
•CURTIME():返回当前时间,只包含时分秒;
流程控制语句:
1.IF(expr1,expr2,expr3)
–如果 expr1 是TRUE
(expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。
–IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。
2.IFNULL(expr1,expr2)|NULLIF(expr1,expr2)
–假如expr1 不为NULL ,则IFNULL() 的返回值为expr1 ; 否则其返回值为expr2 。
表之间的关联:一对一、一对多、多对多。
1.分组函数
•MIN
•MAX
•SUM
•AVG
•COUNT
•ANY的使用
–ANY:表示和子查询的任意一行结果进行比较,有一个满足条件即可。
•< ANY:表示小于子查询结果集中的任意一个,即小于最大值就可以。
[if ppt]•[endif]
•> ANY:表示大于子查询结果集中的任意一个,即大于最小值就可以。
[if ppt]•[endif]
•= ANY:表示等于子查询结果中的任意一个,即等于谁都可以,相当于IN。
•ALL的使用
–ALL:表示和子查询的所有行结果进行比较,每一行必须都满足条件。
•< ALL:表示小于子查询结果集中的所有行,即小于最小值。
[if ppt]•[endif]
•> ALL:表示大于子查询结果集中的所有行,即大于最大值。
[if ppt]•[endif]
•= ALL :表示等于子查询结果集中的所有行,即等于所有值,通常无意义。