MySQL数据库
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MySQL数据库
1.数据库
又称Database,是存储和管理数据的软件系统,是各种数据库对象的集合。它的作用是存储数据,管理数据和检索数据
数据库可以简单看成存放“数据”的“仓库”,它是由表和其他数据库对象组成,数据存放在表中
2.数据库的文件
主数据文件:
包含数据库的启动信息,还可以用来存储数据。扩展名:mdf
事务日志文件:
保存用来恢复数据库的日志信息。扩展名:ldf
3.创建和删除数据库
创建数据库:
Create database 数据库名
删除数据库:
Drop database 数据库名
4.基本数据类型
varchar:
用以存储可变长度的字符串,单位是“字节”nvarchar:
用以存储可变长度的字符串,单位是“字符”char:
用以存储固定长度的字符串,单位是“字节”datatime:
用以存储日期时间数据
float、decimal:
用来存储浮点类型数据
5.约束方法和完整性
七大约束方法:
主键约束、外键约束、唯一约束、标识列、默认值约束、check 约束、非空约束
三大完整性:
域完整性、实体完整性、引用完整性
主键约束:
必须给一张表建立一个永不重复的字段,用来区分一张表中的每一条记录,这个字段称为主键,任何一张数据表都必须要定义主键
6.SQL语句创建表
CREATE TABLE student(
sid INT PRIMARY KEY AUTO_INCREMENT,
sname VARCHAR(10) NOT NULL CHECK(len(sname)>1), sex NVARCHAR(1) NOT NULL DEFAULT '男',
class VARCHAR(10)
)AUTO_INCREMENT=1001;
CREATE TABLE course(
cid INT PRIMARY KEY AUTO_INCREMENT,
cname VARCHAR(30) NOT NULL UNIQUE
);
CREATE TABLE score(
scid INT PRIMARY KEY AUTO_INCREMENT,
sid1 INT NOT NULL,
cid1 INT NOT NULL,
score DECIMAL(5,1)
);
#创建外键
ALTER TABLE score ADD CONSTRAINT sid1 FOREIGN KEY(sid1) REFERENCES student(sid);
ALTER TABLE score ADD CONSTRAINT cid1 FOREIGN KEY(cid1) REFERENCES course(cid);
7.SQL语句关键字
CREATE TABLE:
创建表的语法,其后跟表的名称,表名称不要和关键字冲突
PRIMARY KEY:
定义该字段为主键字段
AUTO_INCREMENT:
定义为标识列
NULL/ NOT NULL:
定义该列是否可以为NULL,如果不写,则默认是NULL CHECK(len(sname)>1):
定义约束,规定sname的值的长度必须大于一个字符DEFAULT :
定义默认值,其后给出默认的值
UNIQUE:
定义唯一约束,规定该列的值不可发生重复
FOREIGN KEY:
定义该列为外键
REFERENCES :
定义该外键列引用了某主键表的某主键列
表中除了最后一列的定义外,其他列的定义后跟“,”结束8.删除表
Drop table 表名
注意:
一定要先删除外键表,然后删除主键表,否则数据库管理系统会报错。原因:如果先删除了主键表,会导致外键表的外键,引用不到对应的主键表的主键,造成引用不完整
9.添加、更新、删除表中的数据
添加数据:
Insert into 表名(列名1,列名2)values(值1,值2)向student表中添加数据:
Insert into student(sname ,sex,class) values(‘Lucy’,’女’,’五班’) 更新数据:
Update 表名set 列名=值where 条件
将所有学员1号课程的分数加5分:
Update score set score=score+5 where cid=1
删除数据:
Delete from 表名where 条件
Truncate table 表名
10.查询语句
Select 列名列表from 表名where 条件
查询所有学员信息:
Select * from student
“*”号表示student表的所有列
11.排序
Order by指定查询出的结果集根据那个列来排序按照班级升序排序
Select * from student order by class asc
Asc表示升序,desc表示降序
12.合并重复记录
Distinct可以在查询结果中合并重复记录
查询哪些课程考过了
Select distinct(cid) from score
13.union
union的作用是联合两个查询的结果集
查询学生表中学号为1001、1003的学生信息
SELECT * FROM student WHERE sid=1001
UNION
SELECT * FROM student WHERE sid=1003;
14.Limit
Limit子句可以被用于强制SELECT 语句返回指定的记录数
limit m,n
其中m是指记录开始的index,从0开始,表示第一条记录