sql基本语法1(简单全面)

笑着哭i 提交于 2020-03-06 00:52:53

SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。

  • SELECT - 从数据库表中获取数据

  • UPDATE - 更新数据库表中的数据

  • DELETE - 从数据库表中删除数据

  • INSERT INTO - 向数据库表中插入数据

  • CREATE DATABASE - 创建新数据库

  • ALTER DATABASE - 修改数据库

  • CREATE TABLE - 创建新表

  • ALTER TABLE - 变更(改变)数据库表

  • DROP TABLE - 删除表

  • CREATE INDEX - 创建索引(搜索键)

  • DROP INDEX - 删除索引

select

select * from Persons

select lastName from Persons

distinct 对查询的字段去重: SELECT DISTINCT 列名称 FROM 表名称

select distinct lastName from Persons

ORDER BY 排序,默认为升序ASC;降序是DESC

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

INSERT INTO 向表格中插入新的行: INSERT INTO 表名称 VALUES (值1, 值2,....)

INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
INSERT INTO Persons (LastName,Address) VALUES('Bill','Champs-Elysees')

Update 修改表中的数据: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

UPDATE Person SET FirstName = 'Fred' WHERE LastName ='Wilson'

UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'
WHERE LastName = 'Wilson'

DELETE 删除表中的行 : DELETE FROM 表名称 WHERE 列名称 = 值

DELETE FROM Person WHERE LastName='Wilson'

#不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的
DELETE FROM table_name
DELETE * FROM table_name

TOP 规定要返回的记录的数目 :

SELECT TOP number|percent column_name(s) FROM table_name

SELECT TOP number|percent column_name(s) FROM table_name

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式

通配符

% 替代一个或多个字符
_ 仅替代一个字符
[abcd] 字符列中的任何单一字符
[^abcd] 不在字符列中的任何单一字符

join

  • JOIN(INNER JOIN): 如果表中有至少一个匹配,则返回行;
  • LEFT JOIN: 返回左表的所有行,右表没有匹配的就补null;左表2条,右表3条,按id连接,则一共会有2条
  • RIGHT JOIN: 返回右表的所有行,左表没有匹配的就补null;左表2条,右表3条,按id连接,则一共会有3条
  • FULL JOIN: 笛卡尔积,左表2条,右表3条,则一共2*3=6条

索引

在表中创建索引,以便更加快速高效地查询数据。

用户无法看到索引,它们只能被用来加速搜索/查询。

**注释:**更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。

CREATE INDEX index_name ON table_name (column_name)

CREATE DATABASE 用于创建数据库 :CREATE DATABASE database_name

CREATE TABLE 语句用于创建数据库中的表

CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)

PRIMARY KEY 约束唯一标识数据库表中的每条记录。

主键必须包含唯一的值。

主键列不能包含 NULL 值。

每个表都应该有一个主键,并且每个表只能有一个主键。

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (Id_P)
)

UNIQUE 约束唯一标识数据库表中的每条记录。

UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。

PRIMARY KEY 拥有自动定义的 UNIQUE 约束。

请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (Id_P)
)

FOREIGN KEY 约束: 一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。

CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)

CHECK 约束用于限制列中的值的范围。

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Id_P>0)
)

DEFAULT 约束用于向列中插入默认值。

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)

**DROP **可以轻松地删除索引、表和数据库。

ALTER TABLE table_name DROP INDEX index_name

DROP TABLE 语句用于删除表(表的结构、属性以及索引也会被删除):DROP TABLE 表名称

DROP DATABASE 语句用于删除数据库 : DROP DATABASE 数据库名称

TRUNCATE TABLE 仅仅删除表格中的数据,但并不删除表本身: TRUNCATE TABLE 表名称

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

后续会更新sql函数基本语法

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!