本人是大二软件工程专业的小白一枚,花了一个星期左右,把数据库的基本语法和使用过了一遍,做完后,又赶紧写了小结哈,防止自己忘了。期末考试一样用的到,但好东西,不能藏着掖着,就将基本的sql语句整理了一下,方便大家查阅。
常用关键词
Database 数据库(DB)
DBMS 数据库管理系统
DBS 数据库系统
DBA 数据库管理员
DESC 查看表的结构
Table 表
Schema 模式
Column 列
Row 行
Primary Key 主键
FOREIGN KEY 外键
DISTINCT 不同的
ENGINE 引擎
DEFAULT 默认值
REFERENCES 参照
CONSTRAINT 限制,约束
1.创建数据库
CREATE DATABASE库名;
2.选择数据库作为当前数据库
USE 库名;
3.创建数据库
CREATE DATABASE 库名;
4.删除数据库
DROP DATABASE库名
5.修改默认编码
ALTER DATABASE 库名 CHARACTER SET 编码
6.设置默认编码
DEFAULT CHARACTER SET 编码
7.查看当前MYSQL数据库支持的储存引擎
SHOW ENGINES
9.查看数据库
SHOW DATABASES
10.创建前一般,判断是否存在
CREATE DATABASE IF NOT EXISTS 库名
11.查看一般和FROM连用,中间用“,”隔开
SELECT 列1,列2,列3(*) FROM 表1
12.检测所有列
SELECT * FROM 表1
DESC 表名 ---查看表结构
13.限制语句LIMIT,在最后使用
LIMIT 3,2 (查询4-5行记录)
14.排序数据,在FROM之后
ORDER BY——ASC默认升序;
搭配指定关键字DESC——降序
15插入数据,行
INSERT INTO 表名 VALUES(对应字段的值)
16.过滤数据——WHERE子句
WHERE+匹配语句 (!=和<>为不等于)
组合:OR AND IN NOT
17.修改数据表
(1)换表名
ALTER TABLE 旧表名 RENAME 新表名
(2)换字段的数据类型
ALTER TABLE 表名 MODIFY 字段名 数据类型
(3)换字段名和类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型
18.添加新的字段
ALTER TABLE 表名 ADD 字段名 数据类型 [约束]
19.删除字段和删除外键约束
ALTER TABLE 表名 DROP 字段名
ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名
20.复制数据表
CREATE TABLE 表1 LIKE 表2 (全盘复制)
CREATE TABLE 表1 AS SELECT 字段…… FROM 表2
21.常用的7种约束条件
Primary KEY 主键约束 用()放符合主键
FOREIGN KEY 外键约束
NOT NULL 非空约束
UNIQUE 唯一约束
DEFAULT 默认约束
AUTO_INCREMNT 自增约束 (字段值自加1)
CHECK(条件) 检查约束 (检查字段值有效性)
22.常用储存引擎ENGINE
事务型数据库首选——INNODB引擎
最常用的储存引擎——MYISAM引擎
将数据储存在内存中——MEMOBY引擎
23.插入数据(合集)
(1)为表中所有字段插入数据
INSERT INTO 表名 VALUES(值1,值2,值3...);
(2)为指定字段插入数据
INSERT INTO 表名 (字段名1,字段名2,字段名3)
VALUES(值1,值2,值3);
(3)同时插入多条记录
INSERT INTO 表名 (字段名列表合)
VALUES(对应取值A),(对应取值B).....
(4)从目标表中插入值
REPLACE [INTO] 表名 VALUES(对应值)
INSERT INTO 表名1 (列名列表)
SELECT 列名列表 FROM 表名2;
24.修改更新数据
UPDATE 表名
SET 字段名1=取值1,字段2=取值2……
WHERE 条件表达式
25.删除数据
DELETE FROM 表名 [WHERE表达式]
TURNCATE 表名 (完全清空一个表,速度快)
26.通配符(LIKE搭配)匹配整个串
例如:SELECT A FROM B WHERE A LIKE ‘jet%’
- * 表格中所有列
- % 表示任何字符出现的任意次数(null除外)
- _ 表示任字符出现一次(不多不少)
27.正则表达式(REGEXP)匹配子串
利用WHERE语句过滤掉SELECT检索出的数据。
- . 它表示匹配任意一个字符
- I 或
- [] 里面定义一组字符,匹配到其中之一即可
- [0-9],[a-z]
- \\ 前导
- 重复元字符: ?(0|1)
* (0|>1)
+(>=1)
- 定位符: ^ 文本开始 $ 文本结束
[[:<:]] 词的开始
[[:>:]] 词的结束
28.数据处理函数:
拼接字段——ConCat(字段1,字段2……)
删除多余空格——RTrim函数
使用别名——AS (客户机可以按名引用)
文本转大写——Upper()函数
29. 更新数据
UPDATE student1
set ssex='女生' WHERE sno='1406053308';
30. 去除重复
SELECT DISTINCT sclass FROM student1;
31.取别名
SELECT sno AS 学号,sname AS 姓名,sclass AS 班级
FROM student1;
32.示例:
查询4-5行数据 limit 3,2;
SELECT sno,grade FROM sc WHERE grade !=50;
SELECT * FROM student1 WHERE ssex='男' AND sclass='软件2126';
CHARSET = utf8;
33.字符串类型
(1)CHAR和VARCHAR类型
CHAR(M)是固定长度字符串,长度为M
VARCHAR(M)长度是可变的,最大字段长度为M
(2)TEXT类型
保存非二进制的字符串,根据长度又分为四种类型。
复合类型:
(3)ENUM类型——枚举列表,一次只能选一个
是一个字符串对象,创建字段时,语法格式:字段名 ENUM (‘值1’,‘值2’……)
(4)SET类型——可以取多个值
是一个字符串对象,可以有0或多个值,最大有64成员。
34.约束constrain(补充)
- 主键 PRIMARY KEY(字段名1,……)
- CONSTRAINT 外键名 FOREIGN KET(字段名) REFERENCES 表名(字段名)
35.条件查询
(1)关系运算符和逻辑运算符的查询
(2)IN关键字查询
[NOT] IN (元素1,元素2……)
(3)BETWEEN AND关键字
[NOT] BETWEEN 值1 AND 值2
(4)IS NULL 关键字
IS [NOT] NULL
(5)LIKE 关键字
% ,_通配字符
转义字符,使用ESCAPE‘/’,则跟在/后面的字符不再拥有别的特殊含义
36.分组查询——CROUP BY
SELECT * FROM 表名 CROUP BY 字段名
[HAVING 条件表达式] [WITH ROLLUP]
注:若单独使用,查询结果只会显示一个分组的一条记录。
37.聚合函数
注:一般和分组查询搭配使用
- COUNT用来统计记录的条数
- SUM用来计算字段的值的总和
- AVG用来计算字段平均值
- MAX和MIN
38.合并查询——UNION关键字
39.多表查询
LEFT JOIN和RIGHT JOIN (左右多表连接)
等值连接 INNER JOIN :有公共字段和值
自然连接 NATURAL JOIN :在等值基础上去重
不等值连接:在等值基础上改掉“=”号即可
40.子查询——和WHERE搭配使用
(1)带IN关键字的子查询。
示例:查询学生中没有选课的人
SELECT * FROM student
WHERE sno NOT IN (SELECT sno FROM sc)
(2)带EXISTS关键字的子查询。
(3)带ANY关键字的子查询。
(4)带ALL关键字的子查询。
41.DATE_FORMAT() 函数
用于以不同的格式显示日期/时间数据。
语法:DATE_FORMAT(date,format)
date 参数是合法的日期;
format 规定日期/时间的输出格式。