SQL数据库
基本介绍
对大小写不敏感,分号分隔命令
SQL默认接受NULL值,但NOT NULL可以使之拒绝接受
基本命令
SELECT - 从数据库中提取数据
UPDATE - 更新数据库中的数据
DELETE - 从数据库中删除数据
INSERT INTO - 向数据库中插入新数据
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
命令语法介绍
SELECT
- 选取数据
SELECT column_name,column_name FROM table_name;
SELECT * FROM table_name;
从表中选取部分列数据或所有数据。
- DISTINCT语句去重复
SELECT DISTINCT column_name,column_name
FROM table_name;
返回每列不同的值,去重复。
WHERE过滤数据
SELECT column_name,column_name FROM table_name WHERE column_name operator value;
提取满足条件的记录,
WHERE运算符包括=、<、>、<>(不等于)、>=、<=、BETWEEM(某个范围内)、LINK(搜索模式)、IN(某列多个可能值),也可以用AND、OR。
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;
ORDER BY排序
SELECT column_name,column_name FROM table_name ORDER BY column_name,column_name ASC|DESC;
默认升序排序,多个列是前面优先,DESC为降序排序。
INSERT INFO语句
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name VALUES (value1, value2, value3,...);
第二种形式需要指定列名及被插入的值:
INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);
UPDATE 更新(更改)记录
UPDATE table_name SET column1=value1,column2=value2,column3=value3,...WHERE some_column=some_value;
更新WHERE语句筛选下的数据,记得WHERE语句,否则全部更新。
DELETE 删除表中数据
DELETE FROM table_name WHERE some_column=some_value;
删除WHERE筛选下的数据
DELETE FROM table_name;
DELETE * FROM table_name;
不删除表情况下删除所有行(结构、属性、索引均未变)
SELECT TOP
不同语句支持不同,目前不做细究,参考菜鸟教程的SELECT TOP语句
UNION
SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;
合并时需要有相同数量的列,允许重复值使用UNION ALL。
DROP删除
删除表
DROP TABLE table_name
删除数据库
DROP DATABASE database_name
删除数据不删除表
TRUNCATE TABLE table_name
删除索引各有不同,不再赘述。
CREATE DATABASE 创建数据库
CREATE DATABASE new_table;
CREATE TABLE创建表
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
···
);
column_name不必说,data_type为数据类型,size为最大长度。
CREATE INDEX 创建索引
CREATE INDEX index_name ON table_name (column_name)
ALTER TABLE添加、删除、修改列
ALTER TABLE table_name ADD column_name datatype
ALTER TABLE table_name DROP COLUMN column_name 删除列
ALTER TABLE table_name ALTER COLUMN column_name datatype 修改数据类型
修改各有所不同
NOT NULL约束
CREATE TABLE table_name
(
column_name1 int NOT NULL,
column_name2 varchar(255) NOT NULL,
column_name3 varchar(255) NOT NULL,
···
);
ALTER TABLE table_name MODIFY column_name1 int NOT NULL 某一字段增加NOT NULL
ALTER TABLE table_name MODIFY column_name2 int NULL 某一字段解除NOT NULL。
LINK 语句
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;
和WHERE语句实际上类似,只不过多了指定模式,多用通配符指定。
SELECT INFO复制数据
MySQL不支持这个,而是支持INSERT INFO SELECT,
CREATE TABLE new_table AS SELECT * FROM old_table
SELECT * INFO new_table FROM old_table1;
SELECT column_name(s) INFO new_table FROM old_table1;
JOIN连接语句
和集合类似,共7种方法。
例如INNER JOIN返回所有满足条件的行,
SELECT table_name1.column_name1, table_name2.column_name2, table_name2.column_name1,table_name2.column_name2
FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name1=table_name2.table_name2.column_name3;
返回结果为,table_name1.column_name1, table_name2.column_name2, table_name2.column_name1,table_name2.column_name2四个列,基于table_name1的数据添加table_name2的数据,然后table_name1的column_name1与table_name2的column_name2的数据相对应。
所有JOIN为:
- INNER JOIN:表中至少一个匹配
- LEFT JOIN:右表无匹配也返回左表所有行
- RIGHT JOIN:左表无匹配也返回右表所有行
- FULL JOIN:只有其中一个存在匹配,返回所有行
而七种为LEFT、RIGHT、FULL还存在可能其中有无对应情况时的交集是否返回的情况。
SELECT table_name1.column_name1, table_name2.column_name2, table_name2.column_name1,table_name2.column_name2
FROM OUTER JOIN table_name2 ON table_name1.column_name1=table_name2.table_name2 ORDER BY table_name2.column_name1 DESC;
数据类型
CHARACTER(n)字符/字符串固定长度,VARCHAR(n)或CHARCTER VARYING(n)字符/字符串最大长度,BOOLEAN布尔值,INTEGER(p)整数值精度p默认10,DECIMAL(p,s)精度p小数点后位数s,DATE年月日,TIME时分秒,TIMESTAMP包括DATE和TIME,还有其他类型。
DATE格式一般为YYYY-MM-DD,DATETIME和TIMESTAMP为YYYY-MM-DD HH:MM:SS,
通配符
%
替代一个或多个字符,_
一个字符,^[charlist]
选取以xx开头的[^charlist]
或[!charlist]
表否定。
例如^[GFS]
选取列数据中以G、F或S开头的数据。^[A-H]
表示数据以A-H开头的。
别名AS
列的 SQL 别名语法
SELECT column_name AS alias_name FROM table_name;
表的 SQL 别名语法
SELECT column_name(s) FROM table_name AS alias_name;
notwiner
发布了15 篇原创文章 · 获赞 6 · 访问量 1249
私信
关注