1. 数据查询语言DQL
数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT <字段名表>FROM <表或视图名>WHERE <查询条件>
2 .数据操纵语言DML
数据操纵语言DML主要有三种形式:1) 插入:INSERT2) 更新:UPDATE3) 删除:DELETE
3. 数据定义语言DDL
数据定义语言DDL用来创建数据库中的各种对象——-表、视图、索引、同义词、聚簇等如:CREATE TABLE/VIEW/INDEX/SYN/CLUSTER| | | | |表 视图 索引 同义词 簇
DDL操作是隐性提交的!不能rollback
4. 数据控制语言DCL
数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。如:1) GRANT:授权。
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。
可以实现分页显示
- //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
- SELECT *FROM table LIMIT 95,-1; // 检索记录行 96-last.
- //如果只给定一个参数,它表示返回最大的记录行数目:
- SELECT *FROM table LIMIT 5; //检索前 5 个记录行
使用子查询时的注意事项有哪些?
子查询语句必须放在括号中
http://c.biancheng.net/view/7380.html
修改表名
ALTERTABLE <旧表名> RENAME [TO] <新表名>;
添加字段
ALTERTABLE表名 ADD字段名 数据类型 [属性];
修改字段
ALTERTABLE表名 CHANGE原字段名 新字段名 数据类型[属性];
删除表中的字段
ALTERTABLE表名 DROP字段名;
次向表中插入一条记录
INSERT INTO 表名 [(字段名列表)] VALUES (值列表);
字段名是可选的,如省略,则依次插入所有字段
多个列表和多个值之间使用逗号分隔
值列表和字段名列表一一对应
如果插入表中的部分字段数据,则字段名列表必填
INSERT INTO patient (password, birthdate, gender, patientName,
phoneNum, email, identityNum, address)
VALUES (‘123456’, ‘1985-06-07’, ‘女’, ‘夏颖’, ‘13800000001’,
‘xiaying@163.com’, ‘110000198506071100’, ‘天津市’);
DML语句——将查询结果插入到新表2-1
CREATE TABLE 新表(SELECT 字段1, 字段2, ……FROM 原表);



常用函数——字符串函数
| 函数名 | 作 用 | 举 例 |
|---|---|---|
| CONCAT( str1,str1,…,strn) |
连接字符串str1、str2、……、strn为一个完整字符串 | SELECT CONCAT( ‘MySQL’,’ is powerful.’); 返回:MySQL is powerful. |
| LOWER(str) | 将字符串str中所有字符变为小写 | SELECT LOWER( ‘MySQL is powerful.’); 返回:mysql is powerful. |
| UPPER(str) | 将字符串str中所有字符变为大写 | SELECT UPPER( ‘MySQL is powerful.’); 返回:MYSQL IS POWERFUL. |
| SUBSTRING( str,num,len) |
返回字符串str的第num个位置开始长度为len的子字符串 | SELECT SUBSTRING( ‘MySQL is powerful.’,10,8); 返回:powerful |
| INSERT( str,pos,len,newstr) |
将字符串str从pos位置开始,len个字符长的子串替换为字符串newstr | SELECT INSERT( ‘MySQL is powerful.’,10,0,’very ‘); 返回:MySQL is very powerful. |
常用函数——时间日期函数:
| CURDATE() | 获取当前日期 | SELECT CURDATE(); 返回:2020-08-03 |
|---|---|---|
| CURTIME() | 获取当前时间 | SELECT CURTIME(); 返回:16:54:40 |
| NOW() | 获取当前日期和时间 | SELECT NOW(); 返回:2020-08-03 16:55:00 |
| WEEK(date) | 返回日期date为一年中的第几周 | SELECT WEEK(NOW()); 返回:31 |
| YEAR(date) | 返回日期date的年份 | SELECT YEAR(NOW()); 返回:2020 |
| HOUR(time) | 返回时间time的小时值 | SELECT HOUR(NOW()); 返回:16 |
| MINUTE(time) | 返回时间time的分钟值 | SELECT MINUTE(NOW()); 返回:56 |
| DATEDIFF(date1,date2) | 返回日期参数date1和date2之间相隔的天数 | SELECT DATEDIFF(NOW(), ‘2019-8-8’); 返回:361 |
| ADDDATE(date,n) | 计算日期参数date加上n天后的日期 | SELECT ADDDATE(NOW(),5); 返回:2020-08-07 16:57:28 |
| UNIX_TIMESTAMP(date) | 将日期转换成时间戳 | SELECT UNIX_TIMESTAMP( 2020-9-1); 返回:1598889600 |
常用函数——聚合函数:
| COUNT() | 返回某字段的行数 |
|---|---|
| MAX() | 返回某字段的最大值 |
| MIN() | 返回某字段的最小值 |
| SUM() | 返回某字段的和 |
| AVG() | 返回某字段的平均值 |
分页查询:
SELECT <字段名列表>FROM <表名或视图>
[WHERE <查询条件>]
[GROUP BY <分组的字段名>] [HAVING <条件>]
[ORDER BY <排序的字段名> [ASC 或 DESC]]
[LIMIT][位置偏移量,]行数];
什么是子查询3-3
SELECT …… FROM 表1
WHERE 字段1 比较运算符 (子查询);
计算年级的函数
FLOOR(DATEDIFF(CURDATE(),birthDate)/365)
