资源预览内容
第1页 / 共55页
第2页 / 共55页
第3页 / 共55页
第4页 / 共55页
第5页 / 共55页
第6页 / 共55页
第7页 / 共55页
第8页 / 共55页
第9页 / 共55页
第10页 / 共55页
亲,该文档总共55页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第2章 SQL语句基础之DDL SQL语言的全称是Structured Query Language,即 结构化查询语言。SQL语言是操作数据库的基础语言。对于 不同的数据库产品,SQL语言大多是通用的。可以通过命令 行的方式,使用SQL语言操作数据库,也可以在JDBC API 中执行SQL语言完成数据库的操作。目前的SQL标准是 1992年制定的SQL-92,简称SQL2。第2章 SQL语句基础之DDL SQL是数据库的标准语言,使用SQL可以对数据库进 行操作,如建表、查询条目等。SQL主要分为用于进行数据 库模式定义的DDL和用于进行数据操作的DML。 一个数据库可以包含几个表,每个表由行和列组成。通 过这些行和列来存储具体信息。一行代表一条记录,如在用 户信息表中添加用户名、密码等。第2章 SQL语句基础之DDL 开发人员可以查询数据库表中,所有记录的信息,也可 以根据某一个列查找相关记录信息。当查找信息时,需要将 所有的记录进行遍历。一个数据库表可以有上亿条记录,此 时如果需要查找相关条件的信息,就需要对数据库进行优化 ,如建立索引等,这样可以提高查询效率。第2章 SQL语句基础之DDL 本书中采用SQL操作MySQL数据库。同样的,SQL也 可以操作其他的数据库产品,如DB2、Oracle等。2.1 DDL基础DDL是数据定义语言(Data Definition Language), 也就是涉及数据库结构、表结构的SQL语句,包括创建数据库 (CREATE DATABASE)、删除数据库(DROP DATABASE)、创建表(CREATE TABLE)、删除表( DROP TABLE)等。2.1.1 列出数据库信息的SQL语句使用STATUS命令查看MySQL当前信息,例如: mysql status; 这里显示了MySQL当前的一些信息。MySQL中可以有 多个数据库模式(Schema)。表建立在不同的数据库模式 中。通常的,一个应用程序对应一个数据库模式。数据库模 式保证多个应用程序可以使用同一个MySQL服务器,但是 却互不干扰。2.1.1 列出数据库信息的SQL语句使用SHOW DATABASE列出所有的数据库模式: mysql show databases; MySQL默认有三个数据库模式: information_schema,mysql与test。名为qq的数据库模 式是笔者新建的数据库模式。2.1.2 使用SQL语句切换数据库模式数据库模式通常也叫数据库。使用USE命令切换到指 定的数据库模式。如: mysql use qq Database changed 控制台中显示Database changed字样,则表示数据库 切换成功。2.1.3 列出数据表的SQL语句切换到某一数据库模式后使用SHOW TABLES列出该 模式所有的数据表。例如: mysql show tables; Empty set (0.00 sec)2.1.3 列出数据表的SQL语句显示Empty set (0.00 sec)字样表示该数据库模式中没 有表。当数据库模式存在表的时候,使用“show tables;” 命令效果如下: mysql show tables;2.1.4 查看表结构的SQL语句使用DESC或者DESCRIBE命令查看指定表的结构。例 如: mysql desc columns; 该命令将列出表的所有列名、类型、是否可以为空、是 否主键、默认值以及描述等属性。2.1.5 创建数据库模式的SQL语句information_schema与mysql为系统数据库,尽量不 要修改它们。使用CREATE DATABASE创建数据库,并在 自定义数据库里创建表以及写数据等。例如: mysql create database bank; Query OK, 1 row affected (0.02 sec) 创建数据库模式以后,切换到新创建的数据库模式,命 令如下:2.1.5 创建数据库模式的SQL语句mysql use bank; Database changed MySQL默认的编码方式为latin1,显示中文字符时可 能会乱码。2.1.5 创建数据库模式的SQL语句在安装的过程中已经把数据库编码设置为utf-8了(注 意MySQL中UTF-8写作utf8),为了安全起见,可以在创建 数据库的时候指明数据库编码。命令如下: mysql create database ss character set utf8 Query OK, 1 row affected (0.00 sec)2.1.6 删除数据库模式的SQL语句有时候需要把多余的数据库模式删除掉,删除数据库使 用DROP DATABASE命令。命令如下: mysql drop database ss; Query OK, 0 rows affected (0.00 sec)2.1.6 删除数据库模式的SQL语句删除数据库模式以后,再使用该数据库模式就显示找不 到该数据库模式,说明该数据库已被删除。刚才删除掉了名 为ss的数据库模式,现在再切换到ss数据库模式,效果如下 : mysql use ss; ERROR 1049 (42000): Unknown database ss2.1.7 修改数据库模式的SQL语句修改数据库使用ALTER DATABASE命令。注意使用 ALTER DATABASE可能需要相应的权限。root账号为系统 账号,具有所有权限。例如: mysql alter database bank character set utf8; Query OK, 1 row affected (0.00 sec)2.1.7 修改数据库模式的SQL语句alter database修改了MySQL数据库的编码方式。当 数据库遇到乱码时常会使用该命令。2.1.8 SQL语句创建表使用CREATE TABLE创建表。表必须创建在某个数据 库模式下面。 CREATE TABLE的完整格式为:CREATE TEMPORARY TABLE IF NOT EXISTS table_name (table_column)。方括号“”表示该参数是可选的。2.1.8 SQL语句创建表“-”后面的为MySQL的行注释。也可以使用“/*”与“*/” 引起的多行注释。在每个字段名自后要用逗号“,”隔开,最 后一个字段名后面没有逗号“,”。 SQL中列出了常用类型的列的创建方式,如int(也可以 用integer),varchar,float,date,time,timestamp, text,blob等。2.1.8 SQL语句创建表varchar有最大长度限制,一般为255个字符。而text 要相对长一些,适用与存储较大的文本。注意区分date、 time、timestamp三种类型:date只有日期信息,time只有 时间信息,而timestamp既有日期又有时间。 该表的主键为id列,用primary key注明。主键的特点 是不能为空,且不会重复(一行对应一个主键值)。2.1.8 SQL语句创建表使用TEMPORARY可以创建临时表。临时表是指创建 后只在当前数据库内有效,断开与数据库的连接后表就自动 删除了。例如:2.1.8 SQL语句创建表create temporary table aa(id int(10),username varchar(20),primary key(id); 临时表常用来转移数据,或者存储中间计算结果。2.1.9 删除表SQL语句删除表可以使用DROP TABLE命令。注意如果表中有 数据会一块删除。例如: mysql drop table test; Query OK, 3 rows affected (0.09 sec) 3 rows affected表示表里的3行数据被一块儿删除。2.1.10 修改表结构SQL语句在创建好表以后,如果需要对表结构进行一些修改,修 改表结构使用ALTER TABLE。常用的操作有删除列、添加 列、更改列、改表名等。2.1.10 修改表结构SQL语句1. 删除表中的列 加入数据库中的某一列不需要使用了,可以用ALTER TABLE语句中的DROP字句将该列删除。删除列的格式为 ALTER TABLE table_name DROP column_name。例如: mysql ALTER TABLE test DROP name;2.1.10 修改表结构SQL语句ALTER TABLE是修改表结构的关键字,它后面紧跟着 的是tablename(即表名称),用来表示表的名字。DROP 也是关键字,用来表示删除操作。这里要删除的是列,所以 DROP后面要紧跟着列名。2.1.10 修改表结构SQL语句2. 在表中添加列 添加列的格式为ALTER TABLE table_name ADD column_name。例如: ALTER TABLE test ADD username varchar(200) not null default Jack; - 非空的varchar类型列,有默认值2.1.10 修改表结构SQL语句ALTER TABLE是修改表结构的关键字,它后面紧跟着 的是tablename(即表名称),用来表示表的名字。ADD是 关键字,用来指定表中要增加的列,同时指定该列的类型和 长度。2.1.10 修改表结构SQL语句3. 修改表中的列 修改列的格式为ALTER TABLE table_name CHANGE column_name new_name。例如,将name列 修改为username列,并将类型改为integer: mysql ALTER TABLE test CHANGE name username;2.1.10 修改表结构SQL语句ALTER TABLE是修改表结构的关键字,它后面紧跟着 的是tablename(即表名称),用来表示表的名字, CHANGE是关键字,CHANGE关键字后紧跟的是要修改列 名,要修改的列名后用空格隔开,然后是修改后的列名。2.2 DDL操作视图DDL还涉及创建、修改和删除视图的SQL语句。视图 可认为是从一个或者多个数据表(或者视图)中导出表。视 图本身没有任何数据,它只是用来存放视图的定义,因此视 图只是虚拟的表。如果数据库表中的的数据发生了改变,与 该表有关的视图中的数据记录也会随之改变。2.2.1 使用视图的原因在实际的开发应用中,常常需要用到视图,使用视图是 因为:视图可以提高数据访问的安全性以及视图可以为复杂 查询操作带来方便。2.2.1 使用视图的原因1. 视图可以提高数据访问的安全性 在实际开发过程中,有些时候并不希望开发人员或者用 户对数据表中的所有记录都可以进行查询操作。例如,在员 工信息表中,员工的姓名、所在部门等信息是可以让所有的 用户都知道的,而员工的工资以及津贴等信息并不希望所有 的用户都知道。2.2.1 使用视图的原因这个时候可以创建一个视图,将不希望所有用户看到的 信息隐藏起来,用户查询视图时,有关员工的工资以及津贴 等信息是查询不到的。2.2.1 使用视图的原因2视图方便查询操作 有些时候,数据表之间的某些数据会经常用到,如果在 不同的地方要经常查询这些数据记录,就需要多次使用 SELECT语句重复查询这些信息,有些时候这些SELECT语 句可能会很复杂,显然这种做法给程序的编写和用户对数据 的访问带来了不便。这时候可以创建一个视图,将在数据表 中经常用到的数据信息都放到这个视图中。2.2.1 使用视图的原因这样每次开发人员或者用户在使用和查询这些数据时, 就可以直接通过视图查询,而不必再写复杂的SELECT语句 了。这种情况对于经常需要通过多表连接
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号