MySQL-sql语句练习.doc

上传人:11****ws 文档编号:2428535 上传时间:2019-05-12 格式:DOC 页数:14 大小:92.50KB
下载 相关 举报
MySQL-sql语句练习.doc_第1页
第1页 / 共14页
MySQL-sql语句练习.doc_第2页
第2页 / 共14页
MySQL-sql语句练习.doc_第3页
第3页 / 共14页
MySQL-sql语句练习.doc_第4页
第4页 / 共14页
MySQL-sql语句练习.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、 MySQL中模式就是数据库 SHOW DATABASES; show databases; 罗列所有数据库名称 CREATE DATABASE create database TEST; 创建名为 TEST的数据库 DROP DATABASE drop database TEST; 删除名为 TEST的数据库 USE use TEST; 使用名为 TEST的数据库 SHOW TABLES show tables; 显示当前数据库所有表格 SHOW FULL COLUMNS FROM show full columns from 在 MySQL数据库中显示表的结构 ,如果加上 full 则更加

2、详细 DESC desc TEST; 查看表 TEST的结构,同 show columns from TEST SHOW CREATE TABLE show create table TEST; 查看表 TEST的所有信息,包括建表语句 创建基本表 : CREATE TABLE ( 列级完整性约束条件 , 列级完整性约束条件 , ); create table STUDENT ( studentId int(30) primary key, name varchar(255), address varchar(255) ); 创建名为 STUDENT的表格,有属性 studentId,name

3、,address,其中 studentId 为主键 create table TEACHER ( teacherId int(30), name varchar(255), age int(20), studentId int(30), primary key (teacherId), foreign key (studentId) references STUDENT(studentId) ); 创建名为 TEACHER 的表格,其中 teacherId 为主键, studentId 为外键,引用 STUDENT表的主键 studentId 修改基本表 : ALTER TABLE RENAM

4、E alter table TEACHER rename S; 将 TEACHER 表的表名改为 S ALTER TABLE ADD COLUMN alter table TEACHER add column ADDRESS varchar(255); 在表名为 TEACHER 的表中加入名为 ADDRESS 的列 ALTER TABLE CHANGE COLUMN alter table TEACHER change column ADDRESS address varchar(230); 修改 TEACHER 表中的列,将 ADDRESS 的列名改 为 address ALTER TABL

5、E DROP COLUMN alter table TEACHER drop column address; 删除列名为 address 的列 ,column 可有可无 删除基本表: DROP TABLE RESTRICT|CASCADE 删除表格 drop table STUDENT restrict; 删除 STUDENT 表。受限制的删除,欲删除的基本表不能被其他表的约束所引用 (如check,foreign key等约束 ), 不能 有视图,不能有触发器,不能有存储过程或函数等。 drop table STUDENT cascade; 若选择 cascade,则该表删除没有限制。在删除

6、基本表的同时,相关的依赖对象,例如视图,都将被一起删除。 但是我在 MySQL测试的时候给错误提示 Cannot delete or update a parent row: a foreign key constraint fails,不予以删除,不知道是什么原因。 关于完整约束性: 参考文章: 完整性约束的 SQL 定义 ALTER TABLE ADD CONSTRAINT alter table teacher add constraint pk_teacher_id primary key teacher(id); 在 teacher表中增加名为 pk_teacher_id 的主键约束

7、。 ALTER TABLE DROP alter table teacher drop primary key; 删除 teacher表的主键约束。 alter table student add constraint fk_student_teacher foreign key student(teacherId) references teacher(id); 在 student 表中增加名为 fk_student_teacher的约束条件,约束条件为外键约束。 索引的建立与删除 : 索引的建立: CREATE UNIQUE|CLUSTER INDEX ON ( 次序 , 次序 ); UN

8、IQUE 表明此索引的每一个索引值只对应唯一的数据记录。 CLUSTER 表示要建立的索引是聚簇索引。 create unique index id_index on teacher(id asc); 对 teacher表的 id列建立 unique索引,索引名为 id_index 索引的删除: DROP INDEX ON drop index id_index on teacher; 在 teacher表中删除索引 ,索引名为 id_index 另外的方法: 新建索引: ALTER TABLE ADD UNIQUE|CLUSTER INDEX ( , ) alter table teache

9、r add unique index id_index(id asc); 在 teacher表中对 id列升序建立 unique索引,索引的名字为 id_index 删除索引: ALTER TABLE DROP INDEX alter table teacher drop index id_index; 删除 teacher表名为 id_index 的索引 数据库索引的建立有利也有弊,参考文章: 数据库索引的作用和优点缺点(一) 数据库索引的作用和优点缺点(二) 数据库建立索引的原则 数据查询: SELECT ALL|DISTINCT , FROM WHERE GROUP BY HAVING

10、ORDER BY ASC|DESC , ASC|DESC ; 查询经过计算的值: select teacherId as id,salary - 100 as S from teacher; 查询经过计算的值,从 teacher表中查询出 teacherId 字段,别名为 id,并且查询出 salary字段减去 100 后的字段,别名为 S 使用函数和字符串: select teacherid as id,birth,salary - 20 as SA, lower(name) from teacher; 可以是字符串常量和函数等 ,birth 为字符串常量, lower(name)为函数,将

11、 name字段以小写字母形式输出 消除取值重复的行: select distinct name from teacher; 如果没有指定 DISTINCT关键词,则缺省为 ALL. 查询满足条件的元组: WHERE 子句常用的查询条件 : (1)比较大小: select * from teacher where name = test; 查询条件 谓词 比较 =, , =, , !, ! 500; select * from teacher where salary = 4; 对 teacher表格按照 cno 分组,并算出每组里面有多少个元素,得 到元素个数大于等于 4的值 连接查询: 连接

12、查询是关系数据库中最主要的的查询,包括等值连接查询,自然连接查询,非等值连接查询,自身连接查询,外连接查询和复合条件连接查询等。 等值与非等值连接查询: 连接查询的 WHERE 子句中用来连接两个表的条件称为连接条件或连接谓词,格式为: . . 其中比较运算符主要有: =, , =, )等 select s.*,t.* from student as s,teacher as t where s.teacherid = t.teacherid; 等值连接查询,将 student 表和 teacher 的信息连接查询出来,连接条件是 s.teacherid = t.teacherid 自身连接:

13、 一个表与自身进行连接,称为自身连接 select teacher.name,student.name from people as teacher,people as student where teacher.name = student.teacher; 自身连接查询,在 people 表里有两种角色, 一种是教师,一种是学生,利用自身连接查询,得到 name字段和 teacher字段相等的元组 外连接: 左外连接列出左边关系中所有元组,右外连接列出右边关系中所有元组。 左外连接: SELECT , FROM LEFT OUTER JOIN ON 右外连接: SELECT , FROM

14、RIGHT OUTER JOIN ON select s.sno,s.name,o,c.name from student as s left outer join class as c on (o = o); student 表和 class 表进行左外连接,连接条件是 o=o select o,c.name,s.sno,s.name from student as s right outer join class as c on (o = o); student 表和 class 表进行右外连接,连接条件为 o=o student 表数据: +-+-+-+ | sno | cno | na

15、me | +-+-+-+ | 1 | 1 | 地心 | | 2 | 2 | 华雄 | | 3 | 1 | 孝慈 | | 4 | 3 | 必须 | +-+-+-+ class 表数据: +-+-+-+ | cid | cno | name | +-+-+-+ | 1 | 1 | 化学 | | 2 | 2 | 物理 | | 3 | 3 | 政治 | +-+-+-+ 左外连接效果: +-+-+-+-+ | sno | name | cno | name | +-+-+-+-+ | 1 | 地心 | 1 | 化学 | | 2 | 华雄 | 2 | 物理 | | 3 | 孝慈 | 1 | 化学 | |

16、4 | 必须 | 3 | 政治 | +-+-+-+-+ 右外连接效果: +-+-+-+-+ | cno | name | sno | name | +-+-+-+-+ | 1 | 化学 | 1 | 地心 | | 1 | 化学 | 3 | 孝慈 | | 2 | 物理 | 2 | 华雄 | | 3 | 政治 | 4 | 必须 | +-+-+-+-+ MySQL不支持全外连接! 复合条件连接: WHERE 子句中可以有多个连接条件,称为复合条件连接 select s.sno,s.name,c.name,s.score from student s,class c where o = o and s.

17、score 60; 复合条件连接查询,查询学生信息和课程信息,并且成绩小于 60 的记录 嵌套查询: 一个 SELECT-FROM-WHERE 语句称为一个查询块。将一个查询块嵌套在另一个查询块的 WHERE 子句或 HAVING短语的条件中的查询称为嵌套查询。 子查询的 SELECT语句中不能使用 ORDER BY 子句, ORDER BY 子句只能对最终查询结果排序 带有 IN 谓词的子查询 : select sno,name from student where cno in ( select cno from student where name = 华雄 ); 查询和 “华雄 “选同一课程的所有学生的学号和姓名。 子查询的查询条件不依赖于父查询,称为 不相关子查询 。 如果子查询条件依赖于父查询,这类子查询称为 相关子查询, 整个查询语句称为相关嵌套查询语句。 带有比较运算符的子查询:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。