SQL学习笔记

简介: ⼀、什么是SQL SQL 指结构化查询语⾔ SQL 使我们有能⼒访问数据库 SQL 是⼀种 ANSI 的标准计算机语⾔ ⼆、SQL能做什么? SQL ⾯向数据库执⾏查询 SQL 可从数据库取回数据 SQL 可在数据库中插⼊新的记录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可

⼀、什么是SQL


  • SQL 指结构化查询语⾔
  • SQL 使我们有能⼒访问数据库
  • SQL 是⼀种 ANSI 的标准计算机语⾔


⼆、SQL能做什么?


  • SQL ⾯向数据库执⾏查询
  • SQL 可从数据库取回数据
  • SQL 可在数据库中插⼊新的记录
  • SQL 可更新数据库中的数据
  • SQL 可从数据库删除记录
  • SQL 可创建新数据库
  • SQL 可在数据库中创建新表
  • SQL 可在数据库中创建存储过程
  • SQL 可在数据库中创建视图
  • SQL 可以设置表、存储过程和视图的权限


三、常⽤SQL语句整理


1、DML与DDL


可以把SQL分为两类:DML(数据操作语⾔)和DDL(数据定义语⾔)


查询和更新指令构成了 SQL 的 DML 部分:


  • SELECT – 从数据库表中获取数据
  • UPDATE – 更新数据库表中的数据
  • DELETE – 从数据库表中删除数据
  • INSERT INTO – 向数据库表中插⼊数据


SQL 的数据定义语⾔ (DDL) 部分使我们有能⼒创建或删除表格。我们也可以定义索引(键), 规定表之间的链接,以及施加表间的约束。


SQL中常⻅的DDL语句:

  • CREATE DATABASE – 创建新数据库
  • ALTER DATABASE – 修改数据库
  • CREATE TABLE – 创建新表
  • ALTER TABLE – 变更(改变)数据库表
  • DROP TABLE – 删除表
  • CREATE INDEX – 创建索引(搜索键)
  • DROP INDEX – 删除索引


2、常⽤DML整理


select语句


select⽤于从表中选取数据,执⾏后会返回⼀个包含所有结果的结果集。


语法:

select 列名称 from 表名称 — 从表中获取制定列的所有数据

select * from 表名称 — 从表中获取所有记录


实例:

select name from users

select * from users


select后⾯还可以跟where⼦句,⽤于规定选择标准,语法:

select 列名称 from 表名称 where 列 运算符 值


例如: select name from users where age = 15


where可以使⽤下列运算符:


操作符 描述
= 等于
<> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式

 

有时候表中会有重复值,这时候可以使⽤select distinct只返回唯⼀不同的值,⽤法和select⼀ 样。


select还可以使⽤order by 对查询到的结果进⾏排序 语法:


select 列名称 from 表名称 order by 列名称


insert语句


insert⽤于向表中插⼊⼀条数据


语法:

insert into 表名称 values (值1, 值2…)

insert into 表名称 (列1, 列2…) values (值1, 值2…)


实例:

insert into users values (1, ‘mary’, ‘female’)

insert into users (name, age) values (‘tom’, 16)


update语句


update⽤于更新表中记录


语法:

update 表名称 set 列名称 = 新值 where 列名称 = 某值


实例:

update users set age = 20 where name = ‘Mary’ update users set sex = ‘male’, age = ’14’ where id = 4


delete语句


delete可⽤于删除表中的⾏


语法:

delete from 表名称 where 列名称 = 值


实例:

delete form users where name = ‘Mary’

delete还可以在不删除表的情况下删除所有⾏


语法:

delete from 表名称 delete * from 表名称


3、常⽤DDL


create database


create database⽤于创建数据库。


语法:

create database 数据库名


create table


create table ⽤于创建表。


CREATE TABLE 表名称 (


列名称1 数据类型,


列名称2 数据类型,


列名称3 数据类型,


….


)


实例:

create table users ( id int(11) not null, name varchar(255), age int(3) )


create index


create index⽤户给表建⽴索引,再不读取整个表数据情况下,索引可以提⾼查询效率,


语法:

CREATE INDEX 索引名 ON 表名 (列名)


PS:对于含有索引的表,在插⼊数据和更新数据时都会更新索引,所以索引并不是建⽴的越多 越好,⼀般只在常⽤的列上建⽴索引。


drop


drop语句可以⽤来删除索引、表和数据库。


语法:

alter table 表名 drop index 索引名 − 删除索引


drop table 表名 − 删除表(表数据和表结构都会被删除)


drop database 数据库名 − 删除数据库


PS:如果只想删除表数据但保留表结构,可以使⽤truncate table 表名


alter


alter语句可以⽤来修改数据库结构,修改表结构。


alter table可以⽤来修改表的列,还可以修改索引(MySQL)


表中添加列:

ALTER TABLE 表名 ADD 列名 数据类型


表中删除列:

ALTER TABLE 表名 DROP COLUMN 列名


修改列的数据类型:

ALTER TABLE 表名 MODIFY COLUMN 列名 数据类型


四、SQL约束


约束⽤于限制加⼊表的数据的类型,常⽤约束条件如下:


  • NOT NULL:强制列不接受NULL值
  • UNIQUE:约束唯⼀标识表中每⼀条记录,⼀个表可以有多个UNIQUE约束
  • PRIMARY KEY:主键也是唯⼀标识表中每⼀条记录,且设置为主键的列不能为空,⼀个 表只能有⼀个主键
  • FOREIGN KEY:⼀个表的外键指向另⼀个表的主键,FOREIGN KEY 约束⽤于预防破坏表 之间连接的动作,也能防⽌⾮法数据插⼊外键列,因为它必须是它指向的那个表中的值 之⼀
  • CHECK:⽤于限制列中的值的范围
  • DEFAULT:⽤于向列中插⼊默认值


五、SQL数据类型(MySQL)


MySQL中主要有三种类型:⽂本、数字、⽇期∕时间


1、⽂本类型:


数据类型 描述
CHAR(size) 保存固定⻓度的字符串(可包含字⺟、数字以及特殊字符)。在括 号中指定字符串的⻓度。最多 255 个字符。
VARCHAR(size) 保存可变⻓度的字符串(可包含字⺟、数字以及特殊字符)。在括 号中指定字符串的最⼤⻓度。最多 255 个字符。 注释:如果值的⻓度⼤于 255,则被转换为 TEXT 类型。
TINYTEXT 存放最⼤⻓度为 255 个字符的字符串。
TEXT 存放最⼤⻓度为 65,535 个字符的字符串。
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’)
SET 与 ENUM 类似,SET 最多只能包含 64 个列表项,不过 SET 可存储 ⼀个以上的值。


2、数字类型:


数据类型 描述
TINYINT(size) -128 到 127 常规。0 到 255 ⽆符号。在括号中规定最⼤位数。
SMALLINT(size) -32768 到 32767 常规。0 到 65535 ⽆符号。在括号中规定最⼤ 位数。
MEDIUMINT(size) -8388608 到 8388607 常规。0 to 16777215 ⽆符号。在括号中 规定最⼤位数。
INT(size) -2147483648 到 2147483647 常规。0 到 4294967295 ⽆符号 。在括号中规定最⼤位数。
BIGINT(size) -9223372036854775808 到 9223372036854775807 常规。0 到 18446744073709551615 ⽆符号。在括号中规定最⼤位数。
FLOAT(size,d) 带有浮动⼩数点的⼩数字。在括号中规定最⼤位数。在 d 参数中 规定⼩数点右侧的最⼤位数。
DOUBLE(size,d) 带有浮动⼩数点的⼤数字。在括号中规定最⼤位数。在 d 参数中 规定⼩数点右侧的最⼤位数。
DECIMAL(size,d)  作为字符串存储的 DOUBLE 类型,允许固定的⼩数点。


3、⽇期∕时间类型:


数据类型 描述
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。

 

分类: 数据库

相关文章
|
6月前
|
SQL 数据库管理
第二章:基础查询与排序---SQL学习笔记
第二章:基础查询与排序---SQL学习笔记
80 0
|
6月前
|
SQL 关系型数据库 MySQL
简简单单 My SQL 学习笔记(1)——表中数据的整删改查
简简单单 My SQL 学习笔记(1)——表中数据的整删改查
|
6月前
|
SQL 关系型数据库 MySQL
简简单单 My SQL 学习笔记(2)——分组和简单数据的查询
简简单单 My SQL 学习笔记(2)——分组和简单数据的查询
|
6月前
|
SQL 关系型数据库 MySQL
简简单单 My SQL 学习笔记(3)——连接和嵌套查询
简简单单 My SQL 学习笔记(3)——连接和嵌套查询
java202304java学习笔记第六十六天-ssm-动态sql-一对一的配置实现1
java202304java学习笔记第六十六天-ssm-动态sql-一对一的配置实现1
60 0
java202304java学习笔记第六十七天-ssm-动态sql-多对多注解开发之1
java202304java学习笔记第六十七天-ssm-动态sql-多对多注解开发之1
58 0
|
6月前
|
SQL OLAP Serverless
第五章:SQL高级处理---SQL学习笔记
第五章:SQL高级处理---SQL学习笔记
64 0
|
6月前
|
SQL 关系型数据库 MySQL
第四章:集合运算---SQL学习笔记
第四章:集合运算---SQL学习笔记
97 0
|
6月前
|
SQL 关系型数据库 数据库
第三章:复杂一点的查询--SQL学习笔记
第三章:复杂一点的查询--SQL学习笔记
111 0
|
6月前
|
SQL 关系型数据库 MySQL
第一章:初识数据库---SQL学习笔记
第一章:初识数据库---SQL学习笔记
89 0