MySQL下的sql示例.docx
- 文档编号:10572071
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:103
- 大小:36.21KB
MySQL下的sql示例.docx
《MySQL下的sql示例.docx》由会员分享,可在线阅读,更多相关《MySQL下的sql示例.docx(103页珍藏版)》请在冰豆网上搜索。
MySQL下的sql示例
例1:
建立数据库
查看现有数据库
showdatabases;
建立demo数据库
createdatabasedemo;
查看现有数据库
showdatabases;
删除数据库
dropdatabasedemo;
查看现有数据库
showdatabases;
例2:
建立基本表
如果demo数据库未建立,则先建立数据库
createdatabasedemo;
不选择缺省数据库的情况下建立学生表
错误的
createtableStudent(
Snochar(9)notnull,
Snamechar(8)notnull,
Ssexchar
(2)notnulldefault'男',
Sagetinyint
(2),
Sdeptchar
(2)
);
createtabledemo.Student(
Snochar(9)notnull,
Snamechar(8)notnull,
Ssexchar
(2)notnulldefault'男',
Sagetinyint
(2),
Sdeptchar
(2)
);
选择demo为缺省的数据库
Usedemo;
建立课程表
不用再demo.SC
不用再demo.Course
createtableCourse(
Cnochar
(1)notnull,
Cnamechar(12)notnull,
Cpnochar
(1),
Ccredittinyint
(1)
);
建立学生选课表
createtableSC(
Snochar(9),
Cnochar
(1),
Gradetinyint(3)
);
查看demo库中基本表的数量
showtables;
showtablesfromdemo;(如果demo不是当前数据库)
例3:
查看基本表的结构
showcolumnsfromstudent;
descstudent;
showcolumnsfromcourse;
desccourse;
showcolumnsfromsc;
descsc;
例4:
修改基本表的结构
向student表的最后中插入一个字段
altertablestudentaddaddressvarchar(64);
查看student表结构所发生的变化
descstudent;
向student表的第1列前插入一个字段
altertablestudent
addIDNumchar(18)notnullfirst;
查看student表结构所发生的变化
descstudent;
向student表的sage列后插入一个字段
altertablestudent
addbirthdaydateaftersage;
查看student表结构所发生的变化
descstudent;
删除新增加的三个字段
altertablestudentdropIDNum;
altertablestudentdropaddress;
altertablestudentdropbirthday;
查看student表结构所发生的变化
descstudent;
将Sdept由char
(2)修改为char(8)
altertablestudentchangeSdeptSdeptchar(8);
查看student表结构所发生的变化
descstudent;
将Sage由tinyint
(2)修改为int(6),并不允许为空
altertablestudentchangeSageSageint(6)notnull;
查看student表结构所发生的变化
descstudent;
将Ssex由char
(2)修改为int
(1),缺省为0
altertablestudentchangeSsexSsexint
(1)default0;
查看student表结构所发生的变化
descstudent;
将Sno改名为Snum,由char(9)修改为int(6),且为主键
altertablestudentchangeSnoSnumint(6)primarykey;
查看student表结构所发生的变化
descstudent;
(也可以先删除Sno,再增加Snum)
例5:
删除基本表
删除Student表
droptablestudent;
查看demo库中基本表的数量
showtables;
删除Course表/SC表
droptablecourse;
droptableSC;
查看demo库中基本表的数量
showtables;
例6:
创建数据库的时候建立索引
如果Student表已存在,则先删除
droptablesstudent;
createtableStudent(
Snochar(9)notnull,
Snamechar(8)notnull,
Ssexchar
(2)notnulldefault'男',
Sagetinyint
(2),
Sdeptchar
(2),
Primarykey(sno),
indexs1(snameasc),
uniques2(sagedesc)
);
查看数据表的结构
descStudent;
查看索引
showindexfromStudent;
例7:
先建立数据表,再通过修改数据表的属性来建立索引
如果Student表已存在,则先删除
droptablesstudent;
createtableStudent(
Snochar(9)notnull,
Snamechar(8)notnull,
Ssexchar
(2)notnulldefault'男',
Sagetinyint
(2),
Sdeptchar
(2)
);
altertablestudentaddprimarykey(sno);
altertablestudentaddindexs1(snameasc);
altertablestudentadduniques2(sagedesc);
查看数据表的结构
descStudent;
查看索引
showindexfromStudent;
例8:
先建立数据表,再直接创建索引(普通/唯一性索引)
如果Student表已存在,则先删除
droptablesstudent;
primaykey建主索引
createtableStudent(
Snochar(9)notnullprimarykey,
Snamechar(8)notnull,
Ssexchar
(2)notnulldefault'男',
Sagetinyint
(2),
Sdeptchar
(2)
);
createindexs1onstudent(snameasc);
createuniqueindexs2onstudent(sagedesc);
查看数据表的结构
descStudent;
查看索引
showindexfromStudent;
例9:
通过修改属性的方式删除Student表的索引
altertablestudentdropindexs1;
altertablestudentdropindexs2;
altertablestudentdropprimarykey;
查看索引
showindexfromStudent;
例10:
直接删除索引(普通/唯一性索引)
因为前面例9已删除,要先建立
createindexs1onstudent(snameasc);
createuniqueindexs2onstudent(sagedesc);
删除索引
dropindexs1onstudent;
dropindexs2onstudent;
查看索引
showindexfromStudent;
例11:
按表结构对应插入数据
清除前面索引的影响,重新建立Student表
droptablestudent;
createtableStudent(
Snochar(9)notnullprimarykey,
Snamechar(8)notnull,
Ssexchar
(2)notnulldefault'男',
Sagetinyint
(2),
Sdeptchar
(2)
);
在Student中插入数据
insertintostudent
values('200215121','李勇','男',20,'CS');
正确
查看数据
select*fromStudent;
insertintostudent
values('张三','200215999','男',20,'CS');
不正确,200215999当做姓名,超宽
查看数据
select*fromStudent;
insertintostudent
values('张三','200215','男',20,'CS');
正确,张三当做学号,200215当做姓名
查看数据
select*fromStudent;
insertintostudent
values('200215128',NULL,'女',19,'CS');
错误,sname不能为空
查看数据
select*fromStudent;
insertintostudent
values('200215128','张三','女',NULL,NULL);
正确
查看数据
select*fromStudent;
insertintostudent
values('200215129','李四','男');
错误,给出的数据列(3)必须与数据表的列(5)相同
查看数据
select*fromStudent;
例12:
按字段名对应插入数据
insertintostudent
(sname,sno)values('李四','200215129');
正确,带缺省值及空字段
查看数据
select*fromStudent;
insertintostudent
(ssex,sno)values('女','200215130');
错误,sname非空且无缺省值
查看数据
select*fromStudent;
例13:
删除数据
清空全部数据
deletefromstudent;
查看数据
select*fromStudent;
再增加4条记录
insertintostudent
values('200215121','李勇','男',20,'CS');
insertintostudent
values('200215122','刘晨','女',19,'CS');
insertintostudent
values('200215123','王敏','女',18,'MA');
insertintostudent
values('200215125','张立','男',19,'IS');
查看数据
select*fromStudent;
删除学号为200215122的记录
deletefromstudentwheresno='200215122';
查看数据
select*fromStudent;
删除年龄大于等于19的学生
deletefromstudentwheresage>=19;
查看数据
select*fromStudent;
重新插入3条记录,恢复为4条记录
insertintostudent
values('200215121','李勇','男',20,'CS');
insertintostudent
values('200215122','刘晨','女',19,'CS');
insertintostudent
values('200215125','张立','男',19,'IS');
删除性别为男的学生
deletefromstudentwheressex='男';
查看数据
select*fromStudent;
重新插入2条记录,恢复为4条记录
insertintostudent
values('200215121','李勇','男',20,'CS');
insertintostudent
values('200215125','张立','男',19,'IS');
删除性别为男且年龄<=19的学生
deletefromstudentwheressex='男'andsage<=19;
查看数据
select*fromStudent;
重新插入1条记录,恢复为4条记录
insertintostudent
values('200215125','张立','男',19,'IS');
删除性别为男或者年龄<=18的学生
deletefromstudentwheressex='男'orsage<=18;
查看数据
select*fromStudent;
例14:
修改记录
先将数据恢复为4条记录
deletefromstudent;
insertintostudent
values('200215121','李勇','男',20,'CS');
insertintostudent
values('200215122','刘晨','女',19,'CS');
insertintostudent
values('200215123','王敏','女',18,'MA');
insertintostudent
values('200215125','张立','男',19,'IS');
查看数据
select*fromStudent;
将李勇的年龄修改为21岁
updatestudentsetsage=21wheresname='李勇';
查看数据
select*fromStudent;
将所有男生的年龄加倍
updatestudentsetsage=sage*2wheressex='男';
查看数据
select*fromStudent;
将所有男生的年龄增加15%
updatestudentsetsage=sage*1.15wheressex='男';
查看数据(注意,结果仍为整数)
select*fromStudent;
将学号为200215121的学生的年龄修改为21,系部为IS
updatestudent
setsage=21,sdept='IS'wheresno='200215121';
查看数据
select*fromStudent;
将学号为200215121的学生的学号修改为200215122
updatestudent
setsno='200215122'wheresno='200215121';
错误,主键重复
查看数据
select*fromStudent;
将学号为200215121的学生的学号修改为200215124
updatestudent
setsno='200215124'wheresno='200215121';
正确
查看数据
select*fromStudent;
将学号为200215122的学生的姓名清空
updatestudentsetsname=NULLwheresno='200215122';
错误,sname不允许为空
查看数据
select*fromStudent;
先修改属性,允许为空
altertablestudentchangesnamesnamechar(8);
查看结构
descstudent;
再将学号为200215122的学生的姓名清空
updatestudentsetsname=NULLwheresno='200215122';
正确
查看数据
select*fromStudent;
将学号为200215123的学生的年龄改为zz
updatestudentsetsage='zz'wheresno='200215123';
错误,sage为整型
查看数据
select*fromStudent;
例15:
带外键的数据表的创建
建立三张无外键关系的表,顺序任意
如果Student、course、SC表已存在,则先删除
droptablesstudent;
droptablescourse;
droptablessc;
建立学生选课表
createtableSC(
Snochar(9),
Cnochar
(1),
Gradetinyint(3),
primarykey(Sno,Cno)
);
建立学生表
createtableStudent(
Snochar(9)notnullprimarykey,
Snamechar(8)notnull,
Ssexchar
(2)notnulldefault'男',
Sagetinyint
(2),
Sdeptchar
(2)
);
建立课程表
createtableCourse(
Cnochar
(1)notnullprimarykey,
Cnamechar(12)notnull,
Cpnochar
(1),
Ccredittinyint
(1)
);
建立Student与SC存在外键关系的表,则必须先student,后sc表
如果Student、course、SC表已存在,则先删除
droptablesstudent;
droptablescourse;
droptablessc;
建立学生选课表
createtableSC(
Snochar(9),
创建不成功
Cnochar
(1),
Gradetinyint(3),
primarykey(Sno,Cno),
foreignkey(Sno)referencesStudent(sno)
);
先建立学生表(不带主键)
createtableStudent(
Snochar(9)notnull,
Snamechar(8)notnull,
Ssexchar
(2)notnulldefault'男',
Sagetinyint
(2),
Sdeptchar
(2)
);
再建立学生选课表
createtableSC(
Snochar(9),
Cnochar
(1),
Gradetinyint(3),
primarykey(Sno,Cno),
foreignkey(Sno)referencesStudent(sno)
);
创建不成功,因为Studnet(sno)不是主键
删除学生表
droptablestudent;
建立学生表(带主键)
createtableStudent(
Snochar(9)notnullprimarykey,
Snamechar(8)notnull,
Ssexchar
(2)notnulldefault'男',
Sagetinyint
(2),
Sdeptchar
(2)
);
再建立学生选课表
createtableSC(
Snochar(9),
Cnochar
(1),
Gradetinyint(3),
primarykey(Sno,Cno),
foreignkey(Sno)referencesStudent(sno)
);
创建成功
创建有外键关系的三个表,则sc必须最后建立
如果Student、course、SC表已存在,则先删除
droptablessc;
droptablescourse;
droptablesstudent;
建立学生表
createtableStudent(
Snochar(9)notnullprimarykey,
Snamechar(8)notnull,
Ssexchar
(2)notnulldefault'男',
Sagetinyint
(2),
Sdeptchar
(2)
);
建立课程表
createtableCourse(
Cnochar
(1)notnullprimarykey,
Cnamechar(12)notnull,
Cpnochar
(1),
Ccredittinyint
(1),
foreignkey(Cpno)referencesCourse(Cno)
);
建立学生选课表
createtableSC(
Snochar(9),
Cnochar
(1),
Gradetinyint(3),
primarykey(Sno,Cno),
foreignkey(Sno)referencesStudent(sno),
foreignkey(Cno)referencesCourse(Cno)
);
查看表结构
showtables;
descStudent;
descCourse;
descSC;
例16:
带外键数据表的删除
droptableCourse;
删除不成功,要删除course,必须先删除sc
droptableSC;
droptablecourse;
droptablestudent;
例17:
带外键数据表的记录的插入
先把三张表补齐
建立课程表
createtableCourse(
Cnochar
(1)notnullprimarykey,
Cnamechar(12)notnull,
Cpnochar
(1),
Ccredittinyint
(1),
foreignkey(Cpno)referencesCourse(Cno)
);
建立学生表
createtableStudent(
Snochar(9)notnullprimarykey,
Snamechar(8)notnull,
Ssexchar
(2)notnulldef
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL sql 示例