1、SELECT
从数据库中选取数据;
如:SELECT * FROM CLASS 或者 SELECT ID,NAME FROM CLASS(ID和NAME为表CLASS中的属性)。
2、SELECT DISTINCT
一列中可能含有多个重复的值,DISTINCT可以返回唯一的值;
如:SELECT DISTINCT ID,NAME FROM CLASS(ID和NAME为表CLASS中的属性)。
3、WHERE
条件语句,取得满足条件的信息;
如:SELECT * FROM CLASS WHERE ID > 5。
4、AND & OR
逻辑表达符,作用与其他语言相同;
如:SELECT * FROM CLASS WHERE ID > 5 AND NAME="LiMing" 或者 SELECT * FROM CLASS WHERE ID > 5 OR NAME="LiMing"。
5、ORDER BY
排序,默认为升序,如需要使用降序,则添加DESC关键字;
如:SELECT * FROM CLASS ORDER BY ID 或者 SELECT * FROM CLASS ORDER BY ID DESC。
6、INSERT INTO
插入语句,用于向表中插入新数据,共分为两种形式,(1)不指定列名,直接插入新的值;(2)需要指定列名和新的值;
如:INSERT INTO CLASS VALUES ("1","LiMing") 或者 INSERT INTO CLASS (ID,NAME) VALUES ("1","LiMing")。
7、UPDATE
对于表中的数据进行更新操作,需要使用WHERE关键字,否则会对表中所有相关记录进行更新;
如:UPDATE CLASS SET NAME="LIMING" WHERE ID="1"。
8、DELETE
删除语句,用于对于表中的数据进行删除操作,操作时,需要使用WHERE关键字,否则会对相关内容全部进行删除;
如:DELETE FROM CLASS WHERE ID="1"。
9、SELECT TOP
可以规定要返回的记录的数据,还可以使用PERCENT关键字指定返回的记录的百分比;
如:SELECT TOP 5 * FROM CLASS 或者 SELECT TOP 5 PERCENT * FROM CLASS。
10、LIKE
用于在WHERE子句中搜索列中的指定模式;
如:SELECT * FROM CLASS WHERE NAME LIKE "Bai%" 或者 SELECT * FROM CLASS WHERE ID LIKE "%0%"。
11、IN
可以使用IN在WHERE子句中指定多个值;
如:SELECT * FROM CLASS WHERE ID IN ("1","2")。
12、BETWEEN
可以使用BETWEEN在WHERE子句中划定两个值的范围;
如:SELECT * FROM CLASS WHKERE ID BETWEEN 1 AND 20。
13、别名
可以为表名或者列名指定别名;
如:SELECT NAME AS N, ID AS I FROM CLASS。
14、JOIN
JOIN可以把两个或多个表的行进行连接,分为INNER JOIN(在表中存在至少一个匹配时返回行)、LEFT JOIN(即使右表中没有匹配,也会返回左表中的所有行)、RIGHT JOIN(即使左表中没有匹配,也会从右表中返回所有的行)、FULL JOIN(只要其中一个表中存在匹配,则返回行)
(1)、以INNER JOIN为例,其余与其相似;
如:SELECT CLASS.NAME, SCORE.SCORE FROM CLASS INNER JOIN SCORE ON CLASS.ID=SCORE.ID ORDER BY SCORE.ID。
15、UNION
UNION操作符用于合并两个或者多个SELECT的结果;
如:SELECT ID FROM CLASS UNION ALL SELECT ID FROM SCORE。
16、SELECT INTO
从一个表中复制,然后把数据插入到另一个新表中;
如:SELECT * INTO CLASS_1 FROM CLASS。
17、INSERT INTO SELECT
从一个表复制信息然后插入到一个已存在的表中;
如:INSERT INTO SCORE SELECT * FROM CLASS。
18、CREATE DATABASE
用于创建数据库;
如:CREATE DATABASE AAA。
19、CREATE TABLE
用于创建表,需指定列名、数据类型、最大长度;
如:CREATE TABLE CLASS { ID int, NAME varchar(255) };
20、约束
用于约束表中的数据规则,可以在创建表时规定(通过CREATE TABLE),或者表创建之后(通过ALTER TABLE);
约束共包含以下几种:(1)、NOT NULL:指示某列不能存储NULL值;(2)、UNIQUE:保证某列的每行必须有唯一的值;(3)、PRIMARY KEY:主键,一个表只能含有一个主键,并且主键的列不能为NULL;(4)、FOREIGN KEY:外键,一个表中的FOREIGN KEY指向另一个表中的UNIQUE KEY(唯一约束的键);(5)、CHECK:保证列中的值符合指定的条件;(6)、DEFAULT:规定没有给列赋值时的默认值。
比如:
学生表(学号,姓名,性别,班级)
其中每个学生的学号是唯一的,学号就是一个主键;
课程表(课程编号,课程名,学分)
其中课程编号是唯一的,课程编号就是一个主键;
成绩表(学号,课程号,成绩)
成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以,学号和课程号的属性组是一个主键。
21、CREATE INDEX
在表中创建索引,索引是一种特殊的查询表,简单来说,索引就是指向表中数据的指针,例如,如果想要查阅一本书中与某个特定主题相关的所有页面,你会先去查询索引(索引按照字母表顺序列出了所有主题),然后从索引中找到一页或者多页与该主题相关的页面。
索引能够提高SELECT查询和WHERE子句的速度,但是却降低了包含UPDATE语句或INSERT语句的数据输入过程的速度。索引的创建和删除不会对表中的数据产生影响。
CREATE INDEX语句允许对索引命名,指定要创建索引的表以及对哪些表进行索引,还可以指定索引按照升序或者降序排列。
同UNIQUE约束一样,索引可以是唯一的。这种情况下,索引会阻止列中(或者列的组合,其中某些列有索引)出现重复的条目。
索引包含以下几种:
(1)、单列索引——基于单一的字段创建:CREATE INDEX INDEX_NAME ON TABLE_NAME (COLUMN_NAME);
(2)、唯一索引——不允许向表中插入任何重复值:CREATE UNIQUE INDEX INDEX_NAME ON TABLE_NAME (COLUMN_NAME);
(3)、聚簇索引——在表中两个或更多的列的基础上建立:CREATE INDEX INDEX_NAME ON TABLE_NAME (COLUMN1,COLUMN2);
(4)、隐式索引——由数据库服务器在创建某些对象时自动生成。例如,对于主键约束和唯一约束,数据库服务器就会自动创建索引。
索引可以使用DROP INDEX命令进行删除,但是删除索引时应当小心,数据库的性能可能会因此而降低或提高:DROP INDEX INDEX_NAME。
22、ALTER TABLE
用于在已有的表中添加、删除或修改列;
(1)、添加列:ALTER TABLE TABLE_NAME ADD COLUMN_NAME DATATYPE;
(2)、删除列:ALTER TABLE TABLE_NAME DROP COLUMN COLUMN_NAME;
(3)、改变列的数据类型:ALTER TABLE TABLE_NAME ALTER COLUMN COLUMN_NAME DATATYPE。
23、AUTO INCREMENT
在新纪录插入表时产生一个唯一的数字,MYSQL中是AUTO INCREMENT,SQLSERVER中是INDENTITY;
如:CREATE TABEL A { ID int INDENTITY (1,1) PRIMARY KEY } (表示从1开始,每次递增1)。
24、视图
https://blog.youkuaiyun.com/eff666/article/details/76389143
25、日期
MySQL Date 函数
下面的表格列出了 MySQL 中最重要的内建日期函数:
函数 | 描述 |
---|---|
NOW() | 返回当前的日期和时间 |
CURDATE() | 返回当前的日期 |
CURTIME() | 返回当前的时间 |
DATE() | 提取日期或日期/时间表达式的日期部分 |
EXTRACT() | 返回日期/时间的单独部分 |
DATE_ADD() | 向日期添加指定的时间间隔 |
DATE_SUB() | 从日期减去指定的时间间隔 |
DATEDIFF() | 返回两个日期之间的天数 |
DATE_FORMAT() | 用不同的格式显示日期/时间 |
SQL Server Date 函数
下面的表格列出了 SQL Server 中最重要的内建日期函数:
函数 | 描述 |
---|---|
GETDATE() | 返回当前的日期和时间 |
DATEPART() | 返回日期/时间的单独部分 |
DATEADD() | 在日期中添加或减去指定的时间间隔 |
DATEDIFF() | 返回两个日期之间的时间 |
CONVERT() | 用不同的格式显示日期/时间 |
26、SQL函数
(1)、AVG,返回列的平均值:SELECT AVG (COLUMN_NAME) FROM TABLE_NAME;
(2)、COUNT,返回匹配指定条件的行数:SELECT COUNT (COLUMN_NAME) FROM TABLE_NAME;
(3)、FIRST,返回指定的列中第一个记录的值:SELECT FIRST (COLUMN_NAME) FROM TABLE_NAME;
(4)、LAST,返回指定的列中最后一个记录的值:SELECT LAST (COLUMN_NAME) FROM TABLE_NAME;
(5)、MAX,返回指定的列中的最大值:SELECT MAX (COLUMN_NAME) FROM TABLE_NAME;MIN,最小值;
(6)、SUM,返回数值列的总数:SELECT SUM (COLUMN_NAME) FROM TABLE_NAME;
(7)、GROUP BY,根据指定的规则对于数据进行分组,一般是和聚合函数配合使用:SELECT COLUMN_NAME, AGGREGATE_FUNCTION (COLUMN_NAME) FROM TABLE_NAME WHERE COLUMN_NAME OPERATOR VALUE GROUP BY COLUMN_NAME;
(8)、HAVING,WHERE的作用是在对查询结果进行分组前,将不符合WHERE条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用WHERE条件显示特定的行;HAVING子句的作用是筛选符合条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用HAVING条件显示特定的组,也可以使用多个分组标准进行分组。
HAVING的语法为:SELECT COLUMN_NAME, AGGREGATE_FUNCTION (COLUMN_NAME) FROM TABLE_NAME WHERE COLUMN_NAME OPERATOR VALUE GROUP BY COLUMN_NAME HAVING AGGREGATE_FUNCTION (COLUMN_NAME) OPERATOR VALUE;
(9)、UCASE,将字段的值转为大写:SELECT UCASE (COLUMN_NAME) FROM TABLE_NAME;LCASE:小写;
(10)、MID,从文本字段中提取字符:SELECT MID (COLUMN_NAME, START [, LENGTH]) FROM TABLE_NAME,
其中,COLUMN_NAME代表需提取字符的字段,START是规定开始的位置(起始值为1),LENGTH是要返回的字符数,如果省略则返回剩余文本;
(11)、LEN,返回文本字段中值的长度:SELECT LEN (COLUMN_NAME) FROM TABLE_NAME;
(12)、ROUND,把数值字段舍入为指定的小数位数:SELECT ROUND (COLUMN_NAME, DECIMALS) FROM TABLE_NAME,
其中,DECIMALS是要返回的小数位数;
(13)、FORMAT,用于对字段的显示进行格式化:SELECT FORMAT (COLUMN_NAME, FORMAT) FROM TABLE_NAME,
其中,COLUMN_NAME是要格式化的字段,FORMAT是规定的格式,
FORMAT格式为:SELECT NAME, URL DATE_FORMAT (Now(), '%Y-%m-%d') AS DATE FROM WEBSITES;
(14)、