1、SQL概述:
SQL:Structured Query Language结构化查询语言,它是使用关系模型的数据库应用语言,由IBM上世纪70年代开发出来。后由美国国家标准局(ANSI)开始着手制定SQL标准,先后有SQL-86,SQL-89,SQL-92,SQL-99等**标准。
2、SQL作用
SQL是用于访问和处理数据库的标准的计算机语言。
使用SQL,SQL Server,Access,Oracle,Sybase,DB2、SQLite等。
3、SQL分类
- DDL(Data Definition Languages):数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。
- 主要的语句关键字包括
CREATE
、DROP
、ALTER
、DECLARE等。
- 主要的语句关键字包括
- DML(Data Manipulation Language):数据操作语言,用于添加、删除、更新和查询数据库记录,并检查数据完整性。
- 主要的语句关键字包括
INSERT
、DELETE
、UPDATE
、SELECT
等。 - SELECT是SQL语言的基础,最为重要。
- 主要的语句关键字包括
- DCL(Data Control Language):数据控制语言,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。
- 主要的语句关键字包括
GRANT
、REVOKE
、COMMIT
、ROLLBACK
、SAVEPOINT
等
- 主要的语句关键字包括
4、sql的语言规范
①mysql对于SQL语句不区分大小写,SQL语句关键字尽量大写
②SQL 可以写在一行或者多行。为了提高可读性,各子句分行写,必要时使用缩进
③关键字不能被缩写也不能分行
④值,除了数值型,字符串型和日期时间类型使用单引号(’ ')
⑤别名,尽量使用双引号(" "),而且不建议省略as
⑥所有标点符号使用英文状态下的半角输入方式
⑦必须保证所有(),单引号,双引号是成对结束的**
**提示:*可以使用(1)#单行注释 (2)–空格单行注释 (3)/ 多行注释 */
5、命名规则
① 数据库、表名不得超过30个字符,变量名限制为29个
②必须只能包含 A–Z, a–z, 0–9, _共63个字符
③不能在对象名的字符间留空格
④ 必须不能和用户定义的其他对象重名
⑤必须保证你的字段没有和保留字、数据库系统或常用方法冲突
⑥保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了
6、牢记
⑴、SQL对大小写不敏感:
小写:select * from datatable;
大写:SELECT * FROM datatable;
上述语句,作用是一样的。
⑵ SQL语句后面的分号是什么含义:
某些数据库系统要求在每条 SQL 语句的末端使用分号。分号是在数据 库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的 SQL 语句。也就是说加分号的地方,相当于一条语句的结束。
7、MySQL 数据类型
在Mysql中,有三种主要的数据类型
1.Text(文本)
2、Number(数字)
3、Date/Time(日期/时间)类型
Text类型:
数据类型 | 描述 |
CHAR(size) | 保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。 |
VARCHAR | 保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。注释:如果值的长度大于 255,则被转换为 TEXT 类型。 |
TINYTEXT | 存放最大长度为 255 个字符的字符串。 |
BLOB | 用于 BLOBs(Binary Large OBjects)。存放最多 65,535 字节的数据。 |
MEDIUMTEXT | 存放最大长度为 16,777,215 个字符的字符串。 |
MEDIUMBLOB | 用于 BLOBs(Binary Large OBjects)。存放最多 16,777,215 字节的数据。 |
LONGTEXT | 存放最大长度为 4,294,967,295 个字符的字符串。 |
LONGBLOB | 用于 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字节的数据。 |
ENUM(x,y,z,etc.) | 允许您输入可能值的列表。可以在 ENUM 列表中列出最大 65535 个值。如果列表中不存在插入的值,则插入空值。注释:这些值是按照您输入的顺序排序的。可以按照此格式输入可能的值: ENUM(‘X’,‘Y’,‘Z’) |
Number 类型:
数据类型 | 描述 |
---|---|
TINYINT(size) | 带符号-128到127 ,无符号0到255。 |
SMALLINT(size) | 带符号范围-32768到32767,无符号0到65535, size 默认为 6。 |
MEDIUMINT(size) | 带符号范围-8388608到8388607,无符号的范围是0到16777215。 size 默认为9 |
INT(size) | 带符号范围-2147483648到2147483647,无符号的范围是0到4294967295。 size 默认为 11 |
BIGINT(size) | 带符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到18446744073709551615。size 默认为 20 |
FLOAT(size,d) | 带有浮动小数点的小数字。在 size 参数中规定显示最大位数。在 d 参数中规定小数点右侧的最大位数。 |
DOUBLE(size,d) | 带有浮动小数点的大数字。在 size 参数中规显示定最大位数。在 d 参数中规定小数点右侧的最大位数。 |
DECIMAL(size,d) | 作为字符串存储的 DOUBLE 类型,允许固定的小数点。在 size 参数中规定显示最大位数。在 d 参数中规定小数点右侧的最大位数。 |
注意:以上的 size 代表的并不是存储在数据库中的具体的长度,如 int(4) 并不是只能存储4个长度的数字。实际上int(size)所占多少存储空间并无任何关系。
Date 类型:
数据类型 | 描述 |
---|---|
DATE() | 日期。格式:YYYY-MM-DD注释:支持的范围是从 ‘1000-01-01’ 到 ‘9999-12-31’ |
DATETIME() | *日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS注释:支持的范围是从 ‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’ |
TIMESTAMP() | *时间戳。TIMESTAMP 值使用 Unix 纪元(‘1970-01-01 00:00:00’ UTC) 至今的秒数来存储。格式:YYYY-MM-DD HH:MM:SS注释:支持的范围是从 ‘1970-01-01 00:00:01’ UTC 到 ‘2038-01-09 03:14:07’ UTC |
TIME() | 时间。格式:HH:MM:SS注释:支持的范围是从 ‘-838:59:59’ 到 ‘838:59:59’ |
YEAR() | 2 位或 4 位格式的年。注释:4 位格式所允许的值:1901 到 2155。2 位格式所允许的值:70 到 69,表示从 1970 到 2069。 |
8、简单操作演示:以MySQL为例
#创建数据库
#创建数据表
#查询表
#向表中添加数据
9、重点掌握知识点:增删改查
一、插入语句:
INSERT INTO [TABLE] ([COLUMN],[COLUMN],[COLUMN])
VALUES(?,?,?)
二、删除语句:
DELETE
FROM [TABLE]
WHERE COLUMN = ?
三、修改语句:
UPDATE [TABLE]
SET COLUMN = ?
WHERE COLUMN = ?
四、查询语句:
(1)查询单条记录的所有字段
SELECT *
FROM [TABLE]
WHERE [COLUMN] = ?
2)查询所有记录的所有字段
SELECT *
FROM [TABLE]
ORDER BY [COLUMN] ASC