一、MySQL数据库
MySQL是一个小型关系型数据库管理系统
1.特征:①性能快捷、优化SQL语言 ②容易使用 ③多线程和可靠性 ④多用户支持 ⑤可移植性和开放源代码 ⑥遵循国际标准和国际化支持 ⑦为多种编程语言提供API
2.优点:快捷、可靠 开源、免费、与PHP组成经典的LAMP组合
3.缺点:①不能直接处理XML数据 ②一些功能上支持的不够完善和成熟 ③不能提供任何OLAP(实时分析系统)功能
4.MySQL常用命令:选定默认数据库:use dbname;
显示所有数据库:show databases;
显示默认数据库中所有表:show tables;
放弃正在输入的命令:\c
显示命令清单:\h 退出mysql程序:\q
查看MySQL服务器状态信息:\s
mysqladmin命令:完成许多系统管理任务,如创建或删除一个数据库、修改密码等
-- 1.建数据库
mysqladmin –u root –p create newdb
-- 2.删除数据库
mysqladmin –u root –p drop newdb
-- 3.更改密码
mysqladmin –u root –p password “newpasswd”
-- 注:u:登录MySQL的用户名 p:登录MySQL的密码
mysqldump命令:用于为数据库创建备份
mysqldump –u root –p tmpdb > backuptmp.sql 注:备份出来的是一个文本文件,默认为utf-8字符集,如果想使用另外一种字符集,必须使用 --default-character-set=gbk选项来设置
二、数据库基础知识
1.数据库定义:由数据构成的有序集合,将数据分类并存放于不同的数据表中,数据表之间可以有交叉联系,所以数据库也成为关系型数据库。
2.数据完整性
数据完整性定义:保证输入的数据是完全正确的,能用数据反应实际的真实情况。为确保数据的完整性,需在创建表时为数据表建立约束,也可后期修改约束。
①数据实体完整性
目的:防止准备输入的数据与数据表中的某条数据重复
约束方法:唯一约束、主键约束、标识列
②字段完整性
目的:防止准备输入的数据中,某个数据为空、该数据的类型或长度与该数据所在的列不匹配
约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束
③引用完整性
目的:在有引用关系的两张数据表中,维护不同数据表之间数据的一致性
约束方法:外键约束
三、SQL语言
1.语法组成
①DML( Data Manipulation Language数据操作语言)
作用:查询、插入、删除和修改数据库中的数据
语句:SELECT、INSERT、DELETE 、UPDATE 等
②DCL( Data Control Language数据控制语言)
作用:用来控制存取许可、存取权限等
语句:GRANT、REVOKE 等
③DDL( Data Definition Language数据定义语言)
作用:用来建立数据库、数据库对象和定义其列
语句:CREATE TABLE 、DROP TABLE、ALTER TABLE 等
2.SQL语言注意事项
①SQL语言需用英文分号“;”结尾,否则认为语句未输入完成
②箭头(->)代表SQL语句没有输入完
③windows中SQL语句不区分大小写
④SQL语句中不限制空格,但在使用函数时,函数与括号之间不能有空格
三、MySQL数据类型
1.数值型:分为整型和浮点型
①整型:可由十进制或十六进制组成
十六进制表示方法:0x后面加1~9或A~F的任意数字或字母,但0x中的x不能大写
②浮点型:由两个数字和一个小数点组成,两个数字不能同时为空
2.字符串:由单引号或双引号括起来的字母或数字
3.日期和时间值:存储“年-月-日”或“时:分:秒”
例:“2005 -1-1” “12:00:00”
4.数值列类型
①列类型:通过设置列类型来描述这一列可以包含什么类型的数据
②数值列类型包括整型和浮点型:
例:INT(3)代表定义一个三个字节的INT列,如果没有明确该数值列的长度,则默认为该类型的最大长度
③对于每种浮点型,可指定一个最大的显示尺寸M和小数位数D
④数值列的完整性约束:设置“自动标识列”,这样的列数据表中仅能有一个,并且此列应该设置为not null,并定义为PRIMARY KEY 或者UNIQUE键
⑤NULL和NOT NULL:建立数值列时默认为null,即如果没有在此列中插入数据,则默认插入null;如果设置not null,则输入的数据不能为空。
⑥DEFAULT:可以在此属性后添加一个数值(缺省值),如果没有在此列中插入数据,则默认将缺省值插入该列。
5.字符串列类型
注:对于可变长度的字符串列类型,长度取决于实际存放数据的长度,此长度在表中用L表示。附加若干额外字节,用来记录字符串长度,也就是说总长度等于L+n(n=1、2、3、4、8)
①CHAR和VARCHAR类型:两者的存储长度都为0~255,区别在于MySQL的存储方式:
CHAR类型:存储大小固定位255,如果存储字符串较短则用空格填充
VARCHAR类型:存储大小为字符串固定大小,不会用空格填充
②BLOB和TEXT类型:BLOB和TEXT是存储二进制的最佳选择,但BLOB按照二进制编码顺序(区分大小写),TEXT按照字符文本编码顺序(不区分大小写)
6.日期和时间列类型
注:①时间和日期值都有一个零值,当输入非法数据时用零值替代
②DATE代表日期,格式为“年-月-日”,TIME代表时间,格式为“时:分:秒”,DATETIME是日期和时间的结合,格式为“年-月-日 时:分:秒”
总结:常用数据类型: