SQL通用语法
1.SQL语句可以单行多行书写,以;结尾。
2.SQL语句可以使用空格缩进增强可读性。
3.不区分大小写,关键字建议大写。
4.注释:
- 单行注释:–注释内容或# 注释内容(MySQL特有)
- 多行注释: /* 注释内容 * /
SQL分类
2.1DDL
DDL-数据库操作
- 查询
SHOW DATABASSES;
查询所有数据库
SELECT DATABASE();
查询当前数据库 - 创建
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
- 删除
DROP DATABASE[IF EXISTS]
- 使用
USE 数据库名
DDL-表操作
-
查询当前数据库所有表
SHOW TABLES;
-
查询表结构
DESC 表名;
-
查询指定表的建表语句
SHOW CREATE TABLE 表名;
-
创建
CREATE TABLE 表名(
字段1 字段1类型[ COMMENT 字段1注释 ],
字段2 字段2类型[ COMMENT 字段2注释 ],
字段3 字段3类型[ COMMENT 字段3注释 ],
.... `字段n 字段n类型[ COMMENT 字段n注释 ]
)[ COMMENT 表注释]; -
修改
添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释 ] [约束];
案例:为emp表添加昵称
修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
删除字段
ALTER TABLE 表名 DROP 字段名;
删除表
DROP TABLE[IF EXISTS ] 表名;
删除指定表并重新创建表
TRUNCATE TABLE 表名;
2.2DML
DML-添加数据
给指定字段添加数据
INSERT INTO 表名(字段1,字段2,…) VALUES(值1,值2,…);
insert into emp(id, workno, name, gender, age, idcard, entrydate) VALUES (1,'1','itcast','男',22,'123456789012345678','2000-01-01')
给全部字段添加数据
INSERT INTO 表名 VALUES(值1,值2,…);
insert into emp values (2,'2','养鸡名','男',23,'120111200009086023','2018-09-01');
给全部字段添加多条数据
INSERT INTO 表名 VALUES (值1,值2,…);
insert into emp values (3,'3','周晓玲','女',23,'120111200009154231','2018-09-01'),(4,'4','张海洋','男',23,'220111200006154231','2018-09-01');
注意:
- 插入数据时,指定字段顺序与值的顺序对应。
- 字符串和日期型数据应该包含在引号中。
- 插入的数据大小,应该在字段的规定范围内。
DML-修改数据
UPDATE 表名 SET 字段名 = 值1,字段名 = 值2,…[WHERE 条件];
update emp set name = '小高',gender = '女' where id = 1;
DML-删除数据
DELETE FROM 表名 [WHERE 条件];
DELETE FROM emp where gender = '女';
注意:
- DELETE语句的条件如果没有,将会删除整张表的所有数据。
- DELETE不能删除某一个字段的值(可以使用UPDATE)。
2.3 DQL
DQL-语法
DQL-基本查询
DQL-条件查询
DQL-聚合函数
作用于表中的某一列数据
DQL-分组查询
DQL-排序查询
asc可以省略,因为默认排序是升序。
DQL-分页查询
DQL-案例练习
参考答案:
1.select * from emp where age in(20,21,22,23);
2.select * from emp where gender = '男' and (age between 20 and 40) and name like '___';
3.select gender,count(*) from emp where age < 60 group by gender;
4.select name,age from emp where age<= 35 order by age asc,entrydate desc ;
5.select * from emp where gender = '男' and (age between 20 and 40) order by age , entrydate limit 5;
DQL-执行顺序
2.4 DQL
介绍:DCL(Data Control Language)数据控制语言,用来管理数据库用户、控制数据库的访问权限。
DCL-管理用户
一般的mysql使用者很少能接触到DCL,大致了解即可。