mysqlsql语法及其使用.ppt
《mysqlsql语法及其使用.ppt》由会员分享,可在线阅读,更多相关《mysqlsql语法及其使用.ppt(70页珍藏版)》请在三一办公上搜索。
1、MySQL SQL语法及其使用,MySQL 支持的SQL语句的分类,数据库的选取、创建、丢弃和变更USECREATE DATABASEDROP DATABASEALTER DATABASE,数据表及索引的创建、变更和丢弃CREATE TABLEDROP TABLECREATE INDEXDROP INDEXALTER TABLE,获得关于数据库和数据表的信息DESCRIBESHOW,从数据表中检索信息SELECT UNION,事务处理BEGINCOMMITROLLBACKSET AUTOCOMMIT,对数据表里的信息进行检索DELETEINSERTLOAD DATAREPLACEUPDATE,
2、管理性语句FLUSHGRANTREVOKE,考试计分项目,student数据表,score数据表,event数据表,absence数据表,3.1 数据库的选定、创建、丢弃和变更,数据库的选定 use db_name;use语句选定一个数据库并将它当作MySQL指定服务器连接上的默认(当前)数据库。即使已经将某个数据库选定为当前的默认数据库,也可以通过 db_name.tbl_name形式的名字去访问其它数据库中的数据表。select*from db_name.tbl_name;数据库的创建 create database db_name,数据库的丢弃drop database db_name;
3、数据库的变更alter database db_name default character set charset;,3.2 数据表的创建、丢弃、索引和变更数据表的创建CREATE TABLE student(name VARCHAR(20)NOT NULL,sex ENUM(F,M)NOT NULL,student_id INT UNSIGNED NOT NULL AUTO_INCREMENT,PRIMARY KEY(student_id);CREATE TABLE score(student_idINT UNSIGNED NOT NULL,event_id INT UNSIGNED NO
4、T NULL,PRIMARY KEY(event_id,student_id),scoreINT NOT NULL);,CREATE TABLE event(dateDATE NOT NULL,typeENUM(T,Q)NOT NULL,event_idINT UNSIGNED NOT NULL AUTO_INCREMENT,PRIMARY KEY(event_id);CREATE TABLE absence(student_idINT UNSIGNED NOT NULL,dateDATE NOT NULL,PRIMARY KEY(student_id,date);,数据表的丢弃 drop t
5、able tbl_name;数据表的索引MySQL能够创建以下几种类型的索引:1 普通索引 2 唯一化索引 3 供全文本使用的FULLTEXT索引创建索引的方法 1 使用create table 语句在创建一个数据表的同时创建索引 2 使用create index 语句创建索引 create index index_name on tbl_name(index_columns);create unique index index_name on tbl_name(index_columns);create fulltext index index_name on tbl_name(index_
6、columns);3 使用alter table 语句将索引添加到现在的数据表上去 alter table tbl_name add index index_name(index_columns);alter table tbl_name add unique index_name(index_columns);alter table tbl_name add priamry key(index_columns);alter table tbl_name add fulltext(index_columns);,索引的丢弃 drop index index_name on tbl_name;a
7、lter table tbl_name drop index index_name;变更数据表的结构重命名数据表alter table tbl_name rename to new_tbl_name;改变数据列类型alter table tbl_name modify columns,3.3 获取关于数据库和数据表的信息列出服务器管理着的数据库show databases;列出当前或指定数据库里的数据表;show tables;show tables from db_name;显示有关数据表中的数据列或索引信息show columns from tbl_name;show index from
8、 tbl_name;显示关于当前数据库或指定数据库中数据表的描述信息show table status;show table status from db_name;显示与数据表的当前结构相对应的create table语句show create table tbl_name;,3.4 插入、删除、修改数据记录,插入数据记录可以一次性列出全部的数据insert into tbl_name values(value1,value2,);可以用一条insert语句将多个数据行插入到数据表中去insert into tbl_name values(),(),;可以直接对数据列进行赋值,先给出数据列的
9、名字,再列出它的值insert into tbl_name(col_name1,col_name2,)values(value1,value2,);删除数据记录delete from tbl_name where where_expr;修改数据记录update tbl_nameset which columns to changewhere which record to update;,3.5 数据查询,SELECT selcet_options select_list FROM tbl_list WHERE where_expr ORDER BY col_name ASC|DESC HAV
10、ING where_expr ORDER BY col_name ASC|DESC LIMIT skip_count,SHOW_COUNT 注意:(1)可以生成统计信息(2)通配符号_匹配单个的任意字符%能匹配任何一个字符序列(包括空序列在内)。,涉及多个数据表的查询操作 SELECT语句的基本语法 SELECT selection_list#选择哪些数据列 FROM table_list 从哪些数据表选择数据行 WHERE primary_constraint 数据行必须满足哪些条件 GROUP BY grouping_colums 如何对结果分组 ORDER BY sorting_colu
11、mns 如何对结果进行排序 HAVING secondary_constraint 数据行必须满足的次要条件 LIMIT count;对结果个数的限制正确写出一个查询的关键是怎样才能把个有关数据表按正确的顺序关联起来。,单关联查询只设计一个数据表mysqlSELECT*FROM student;全关联在SELECT语句的FROM子句给出了多个数据表的名字关联操作 JOIN或“,”SELECT student_id,date,score,typeFROM event join scoreWHERE date=20020906 AND type=Q AND event.event_id=score
12、.event_id;结果示例SELECT student.name,event.date,score.score,event.typeFROM event,score,studentWHERE event.date=20020916 AND event.event_id=score.event_id AND score.student_id=student.student_id;结果示例,课内练习:查询缺勤学生的姓名和缺勤次数SELECT student.student_id,student.name,count(absence.date)as absencesFROM student,abs
13、enceWHERE student.student_id=absence.student_idGROUP BY student.student_id;结果示例,左关联(右关联)LEFT JOIN的工作情况:首先,要指定一个或多个用来匹配的两个数据表里的数据行的数据列。当左数据表里的某个数据行与右数据表里的某个数据行相匹配时,这两个数据行的内容将被选取为一个输出行。当左数据表里的某个数据行在右数据表里没有找到任何匹配时,它也将被选取为一个输出行,但这时它将与右数据表里的一个“伪造”数据行(这个“伪造”数据行的所有数据列都将被设置为NULL)进行组合。DELETE FROM score WHERE
14、 student_id 19;SELECT student.*,score.*FROM student LEFT JOIN scoreON student.student_id=score.student_id;结果示例,左关联能够将左数据表有的,而在右数据表中没有匹配的数据行找出来SELECT student.*FROM student LEFT JOIN scoreON student.student_id=score.student_idWHERE score.score IS NULL;结果示例,课堂练习:,找出考试缺勤的同学,以便安排补考SELECT student.student_
15、id,student.name,event.event_id,event.date,event.typeFROM student,event LEFT JOIN score ON student.student_id=score.student_id AND event.event_id=score.event_idWHERE score.score IS NULLORDER BY student.student_id,event.event_id;结果示例,使用子选择(从MySQL 4.1 版本才开始支持)允许将一个SELECT查询嵌套在另一个SELECT查询当中SELECT*FROM sc
16、oreWHERE event_id IN(SELECT event_id FROM event WHERE type=Q);结果示例使用子选择来生成一个参考值 由内层的SELECT语句来检索出一个数据值,然后把这个数据值用在外层SELECT语句的比较操作中。SELECT*FROM score WHERE event_id=(SELECT event_id FROM event WHERE date=20020923 AND type=Q);结果示例EXISTS 和 NOT EXISTSIN 和 NOT IN,EXISTS 和 NOT EXISTS子选择 这两种形式的子选择将把由外层查询检索到的
17、数据值传递给内部 查询,看它们是否满足内层查询所给出的匹配条件。EXISTS 和 NOT EXISTS子选择非常适合用来检索某个数据表在另一个数据表里有或者没有匹配的记录。SELECT*FROM student WHERE EXISTS(SELECT*FROM score WHERE student.student_id=score.student_id);结果示例 SELECT*FROM student WHERE NOT EXISTS(SELECT*FROM score WHERE student.student_id=score.student_id);结果示例,IN 和 NOT IN子
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mysqlsql 语法 及其 使用
链接地址:https://www.31ppt.com/p-5441050.html