SQL语言
SQL语言简介
结构化查询语言(Structured Query Language)
简称
SQL(
发音:
sequal['si:kw
ə
l])
,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL 能做什么?
- SQL 面向数据库执行查询
- SQL 可在数据库中插入新的记录
- SQL 可更新数据库中的数据
- SQL 可从数据库删除记录
- SQL 可创建新数据库SQL 可在数据库中创建新表
- SQL 可在数据库中创建存储过程
- SQL 可在数据库中创建视图
- SQL 可以设置表、存储过程和视图的权限
SQL 标准
SQL 是
1986
年
10
月由美国国家标准局(
ANSI
)通过的数据库语言美国标准,接着,国际标准化组织(ISO
)颁布了
SQL
正式国际标准。
1989
年
4
月,
ISO
提出了具有完整性特征的
SQL89
标准,
1992
年11 月又公布了
SQL92
标准,在此标准中,把数据库分为三个级别:基本集、标准集和完全集。在
1999 年推出 99
版标准。最新版本为
SQL2016
版。比较有代表性的几个版本:
SQL86
、
SQL92
、
SQL99
。
SQL语言分类
数据查询语言(DQL
:
Data Query Language
)其语句,也称为
“
数据检索语句
”
,用以从表中获得数据,确定数据怎样在应用程序给出。关键字 SELECT
是
DQL
(也是所有
SQL
)用得最多的动词。
SELECT
FROM
WHERE
ORDER BY
HAVING
数据操作语言(DML
:
Data Manipulation Language
)其语句包括动词
INSERT
,
UPDATE
和DELETE。它们分别用于添加,修改和删除表中的行。
INSERT
:添加数据
UPDATE
:更新数据
DELETE
:删除数据
数据定义语言(DDL
:
Data Definition Language
)定义数据库对象语言,其语句包括动词
CREATE
和
DROP
等。
CREATE
:创建数据库对象
ALTER
:修改数据库对象
DROP
:删除数据库对象
数据控制语言(DCL
:
Data Control Language
)它的语句通过
GRANT
或
REVOKE
获得许可,确定用户对数据库对象的访问。
GRANT
:授予用户某种权限
REVOKE
:回收授予的某种权限
事务控制语言(TCL
:
Transaction Control Language
)它的语句能确保被
DML
语句影响的表的所有行及时得以更新。
COMMIT
:提交事务
ROLLBACK
:回滚事务
SAVEPOINT
:设置回滚点
注意:数据操纵语言DML ( insert 、 update 、 delete )针对表中的数据 ; 而数据定义语言 DDL ( create 、 alter 、 drop )针对数据库对象,比如数据库 database 、表 table 、索引index 、视图 view 、存储过程 procedure 、触发器 trigger ;
SQL语言语法
SQL语句不区分大小写,关键字建议大写。
SQL语句可以单行或多行书写,以分号结尾。
创建与删除数据库
创建数据库
使用DDL
语句创建数据库
CREATE DATABASE 数据库名 DEFAULT CHARACTER SET 字符编码 ;
示例:
创建一个test
的数据库,并查看该数据库,以及该数据库的编码。
创建数据库:
create database test default character set utf8;
查看数据库:
show databases ;
查看数据库编码:
select schema_name ,default_character_set_name frominformation_schema .schematawhere schema_name = 'test' ;
使用Navicat
创建数据库就比较简单了
删除数据库
使用DDL
语言删除数据库
DROP DATABASE 数据库名称 ;
示例:
删除 test
数据库
drop database test;
使用Navicat删除数据库
MySQL中的数据类型
整数类型
浮点类型
字符类型
char 和 varchar :
- char长度固定, 即每条数据占用等长字节空间;适合用在身份证号码、手机号码等定长。
- varchar可变长度,可以设置最大长度;适合用在长度可变的属性。
- text不设置长度, 当不知道属性的最大长度时,适合用text。
按照查询速度: char 最快, varchar 次之, text 最慢
字符串型使用建议:
- 经常变化的字段用varchar
- 知道固定长度的用char
- 尽量用varchar
- 超过255字符的只能用varchar或者text
- 能用varchar的地方不用text
日期类型
二进制数据 (BLOB)
- BLOB和TEXT存储方式不同,TEXT以文本方式存储,英文存储区分大小写,而Blob是以二进制方式存储,不分大小写。
- BLOB存储的数据只能整体读出。
- TEXT可以指定字符集,BLOB不用指定字符集
创建表与删除表
创建表
使用DDL
语句创建表
CREATE TABLE 表名 ( 列名 类型 , 列名 类型 ...... ) ;
示例:
创建一个 employees
表包含雇员
ID
,雇员名字,雇员薪水。
create table employees ( employee_id int,employee_name varchar ( 10 ) ,salaryfloat ( 8 , 2 )) ;
查看已创建的表
show tables ;
使用
Navicat
创建表
删除表
使用DDL
语句删除表
DROP TABLE 表名 ;
示例:
删除 employees
表。
DROP TABLE employees
使用Navicat
删除表
修改表
修改表名
使用DDL
语句修改表
ALTER TABLE 旧表名 RENAME 新表名 ;
创建一个 employees
表包含雇员
ID
,雇员名字,雇员薪水。
create table employees ( employee_id int,employee_name varchar ( 10 ) ,salaryfloat ( 8 , 2 )) ;
将 employees
表名修改为
emp
。
alter table employees rename emp;
使用Navicat
修改表名
选择表按F2。
修改列名
使用DDL
语句修改列名
ALTER TABLE 表名 CHANGE COLUMN 旧列名 新列名 类型 ;
将 emp
表中的
employee_name
修改为
name
。
alter table emp change column employee_name name varchar ( 20 ) ;
使用Navicat
修改列名
修改列类型
使用DDL
语句修改列类型
ALTER TABLE 表名 MODIFY 列名 新类型 ;
将 emp
表中的
name
的长度指定为
40
。
alter table emp modify name varchar ( 40 ) ;
使用Navicat
修改列类型
添加新列
使用DDL
语句添加新列
ALTER TABLE 表名 ADD COLUMN 新列名 类型 ;
在 emp
表中添加佣金列,列名为
commission_pct
。
alter table emp add column commission_pct float ( 4 , 2 ) ;
使用Navicat
添加新列
删除指定列
使用DDL
语句删除指定的列
ALTER TABLE 表名 DROP COLUMN 列名 ;
删除 emp
表中的
commission_pct
。
alter table emp drop column commission_pct;
使用Navicat
删除指定的列
只讲干货
#有什么错误的地方大家多多担待,欢迎大家留下意见共同努力。
#需要什么技术的内容大家也可以积极留言。
#有升本的伙伴也可留言,后序也可更新升本内容C 和数据结构。
#有需要的伙伴或有什么问题直接联留下wx或联系邮箱2821835676qq.com