DML data manipulation language
- The select
SELECT statement is used to select data from a table
Syntax: SELECT column name FROM table name
SELECT * FROM table name
Asterisk (*) is a shortcut to select all columns
Example: SELECT FristName,dress FROM transcript - The select distinct
keyword distinct is used to return only distinct values
Syntax: SELECT DISTINCT dress FROM transcript - where
conditionally selects data from a table
Syntax: SELECT column name FROM table name WHERE column operator value
Example: SELECT score FROM transcript WHERE score=78
SELECT * FORM transcript WHERE dress='shanghai' - and and or
combine two or more conditions in the where clause. If
A and B are established, the and operator displays a record;
as long as one of A and B is established, the or operator displays a record;
AND operator Example:
SELECT * FORM transcript WHERE FirstName='yang' AND LastName='ming'
OR Operator Example:
SELECT * FORM transcript WHERE FirstName='yang' OR LastName='ming' - ORDER BY is used to sort the result set; the
default is to sort in ascending order, if you want to sort in descending order, use the DESC keyword;
example: SELECT FirstName,score FORM transcript ORDER BY FirstName
SELECT FirstName,score FORM transcript ORDER BY FirstName,score
SELECT FirstName ,score FORM transcript ORDER BY FirstName DESC,score ASC - The INSERT INTO statement is used to insert a new row into a table
Syntax: INSERT INTO tablename VALUES (value1, value2........)
Specify the columns into which data is to be inserted:
INSERT INTO table_name (column1,column2 ......) VALUES (value 1, value 2.......)
Example:
INSERT INTO transcript VALUES (8,xin,yu,95)
insert into transcript (ID_t,LastName,FirstName,score) values (9,yan,zhu,88) - The UPDATE statement is used to modify data in a table
Syntax: UPDATE table name SET column name = new value WHERE column name = some value
Example: UPDATE transcript SET score = 87 WHERE ID_t = 8
Several columns in a row:
UPDATE transcript SET score = 89 ,LastName = 'jia',FirstName = 'wang' WHERE ID_t = 8 - delete语句用于删除表中的行;
语法:DELETE FORM 表名称 WHERE 列名称 = 值
实例:DELETE FORM transcript WHERE LastName = 'jia'
删除所有的行
delete form table_name
delete * form table_name
- create DB 创建数据库
语法:CREATE DATABASE database_name
实际:创建一个名为my_db的数据库
CREATE DATABASE my_db - create table 创建数据库中表
创建新表
语法:CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
......
)
实例:创建名为transcript的表
CREATE TABLE transcript
(
ID_t int,
LastName varchar(255),
FirstName varchar(255),
dress varchar(255),
score varchar(255)
)
NOT NULL 约束
强制列或者字段不接受空值
例如:
CREATE TABLE transcript
(
ID_t int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
dress varchar(255),
score varchar(255) NOT NULL
)
使用旧表创建新表
create table new_tab like old_tab
PRIMARY KEY 主键必须包含唯一的值;
每个表都应该且只能有一个主键;
create table student
(
sid int not null,
sname varchar(255)
...
primary key(sid)
)
添加主键:
alter table table_name add primary key(...)
删除主键:
alter table table_name drop primary key(...)
create index 在表中创建索引
CREATE INDEX index_name ON table_name(column_name)
在表示创建一个唯一的索引
CREATE UNIQUE INDEX index_name ON table_name(column_name)
实例:CREATE INDEX student_index ON student(Sname)
drop index 删除索引
DROP INDEX index_name
实例:
DROP INDEX student_index
- drop 删除数据库
DROP DATABASE database_name
实例:DROP DATABASE my_db
DROP table 删除表
DROP TABLE table_name
实例:drop table transcript
truncate table 只删除表内数据,不删除表本身
TRUNCATE TABLE transcript
- Alter
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
实例:
在已知的表中添加Brithday列
ALTER TABLE transcript
ADD Brithday date
- TOP 用于规定要返回的记录的数目;
- like WHERE子句中搜索列中的指定模式
语法:SELECT column_name FROM table_name WHERE column_name LIKE pattern
SELECT * FROM Persons
WHERE City LIKE 'N%'
- IN IN 操作符允许我们在 WHERE 子句中规定多个值
SELECT column_name FROM table_name WHERE column_name IN (value1,value2...)
SELECT * FROM Persons WHERE LastName IN ('Adams','Carter')
- BETWEEN ... AND
操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
- AS
表的 SQL Alias 语法
SELECT column_name(s)
FROM table_name
AS alias_name
列的As语法
SELECT column_name AS as_name FROM table_name
SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p, Product_Orders AS po
WHERE p.LastName='Adams' AND p.FirstName='John'
- SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据
JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行