写在前面:
下面主要总结的是SQL的数据类型和DDL,DML和DCL的基础用法,适合查阅。纯结构化文本读起来需要耐心。勤于练习,勤于练习,勤于练习!
2018/05/30第一次修改。
SQL(Structured Query Language结构化查询语言)
数据类型
- 数值类型 :int bigint double decimal(高精度要求下使用)
- 字符类型 :varchar 字符串 char字符 text 长文本
- 日期和时间类型 date 日期(年月日) time 时间(时分秒)datetime
注意:字符串类型和日期类型都要用单引号括起来。
date是SQL Server 2008新引进的数据类型。它表示一个日子,不包含时间部分,可以表示的日期范围从公元元年1月1日到9999年12月31日。只需要3个字节的存储空间。
DateTime 日期和时间部分,可以表示的日期范围从公元1753年1月1日00:00:00.000 到9999年12月31日23:59:59.997 ,精确到3.33[毫秒],它需要8个字节的存储空间。
常用数据类型
- double(5,2),一个double类型的数,占用5位,小数最多两位
- char(10),固定长度位10字符串,不够的在后面补充空格,例如”123 “
- varchar(10),类似于String类型,但最大长度位10
- blob,二进制类型,占1bit
SQL组成
- Data Query Language 简称DQL,数据库查询语言, 关键字为SELECT。
- DDL Definition :数据库模式定义语言。关键字:CREATE,TRUNCATE ,DROP,ALTER。
- DML Manipulation :数据操纵语言。关键字:INSERT、UPDATE、DELETE。
- DCL Control :数据库控制语言 。关键字:grant、revoke 等。
- TCL : 事务控制语言(TCL)。例如:COMMIT、ROLLBACK等。
下面是一些常用的DDL语句,主要是对数据库和表进行增删改查
DDL 数据库定义语言
- 创建数据库:create database 《数据库名称》 《字符集》 《校对规则》
- 字符集:一般选用utf8,兼容性好
- 校对规则:是在字符集内用于字符比较和排序的一套规则,比如有的规则区分大小写,有的则无视。每个字符集都有一个默认的校对规则。比如在utf8中,utf8_bin表示区分大小写,utf8_general_ci则不区分大小写。注意UTF-8字符集写作utf8
- use 《数据库名称》;进入具体的数据库,对表进行操作
- show tables;查看被use数据库中的表格
- 创建数据库:create table 《数据库表名》(《字段》 《数据类型》,《字段》 数据类型…);
- 这里可以给每个字段添加限制,可以给表设置主键,外键等
- 展示表结构:desc 《表名》
- 给表添加列:alter table 《表名》 add 《新字段》 《类型》;
- 修改一个表的字段的数据类型:alter table 《表名》 modify 《字段名》 《类型》;
- 删除一字段:alter table 《表名》 drop 《字段》;
- 修改表名:rename table 《原始表名》 to 《新表名》;
- 查看建表细节:show create table 《表名》;你将看到完整的建表语句
- 修改字符集: alter table 《表名》 charcter set GBK/utf8
- 修改字段:alter table 《表名》 change 《原始字段》 《新字段》 《数据类型》;
- 删除表:drop table 《表名》;
DML 对表中的数据进行 增删改查
- 添加(多个)数据 :
insert into 《表名》(
《字段》,《字段》…) values (
《数据》,《数据》,
《数据》,《数据》
…); - 删除操作:
- delete from 《表名》《where 列名=值》//可以找回数据
- truncate table 《表名》;//彻底删除,后创建一个新的表
- 改数据:
update 《表名》 set
《字段》=《列值》,
《字段》=《列值》
where 《字段》=《值》; - 查询所有数据:select 字段 from 表名《条件》;
DQL 主要就是用SELECT 从表中找符合条件的数据:
一般格式如下
SELECT select_list
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
SQL语言很口语化,但是想掌握好,还是需要多练习的。