您的位置:首页 > 数据库 > MySQL

常见的MySQL语法总结

2017-11-08 16:37 323 查看

基本增删改查

SELECT * FROM tablename

SELECT DISTINCT * FROM tablename 去重

SELECT * FROM table WHERE num =1 条件

AND,OR,条件组合

SELECT * FROM table Order by list1 ASC(正序),list2 DESC(倒序)

INSERT INTO table (list1,list2) VALUES (’value1’,’value2’)

UPDATE table SET list1=’value1’ list2=’value2’ WHERE list3=”

DELETE FROM table WHERE list=’value’ 删除一行

高级操作

SELECT TOP num|percent column_name FROM table

LIKE用于在WHERE子句中指定模式,SELECT name FROM table WHERE name LIKE ‘N%’以N开头

也可以使用NOT来进行筛除

通配符,%可以通配多个字符,_通配一个字符,[abc]通配其中一个,[^abc]通配非其中的一个

SQL in:结合WHERE指定列可以选择的值 SELECT * FROM table WHERE list in (‘value1’,’value2’)

between:结合WHERE指定按一定顺序所属的范围SELECT * FROM table WHERE list BETWEEN ‘value1’(包括) AND ‘value2’(不包括)

SQL ALIAS:使用表的别名进行选择或者显示,可以对表做别名或者列做别名

1.对表 SELECT p.name,p.address FROM table as p

2.队列 SELECT name AS family FROM table 显示则为family为列名显示值

SQL join:对两个表做连接,SELECT table1.name,table2.address FROM table1 INNER JOIN table2 ON table1.id=table2.id ORDER BY table1.name

left join:坐表的所有行都会被列出,即使有的行对应的右表不存在

9.right join:同理

full join:列出左右表所有存在的行

UNION:UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同,UNION不存在重复的值,也就是说如果两个SELECT中存在重复的值会被删除,可以使用union all来允许重复

SELECT name FROM table1 UNION SELECT name FROM table2

SELECT INTO:将部分数据插入到另一个表中或做备份 SELECT list INTO newtable FROM old_table

还可以向另一个数据库中拷贝数据 SELECT column_name INTO new_table IN db FROM old_table

可以将联结查询得到的数据拷贝SELECT column1,column2 INTO new_table FROM table1 INNER JOIN table2 ON list1=list2

create database:创建数据库

create table:CREATE TABLE table_name(list1 type,list type2….)

约束:定义的时候加上,如CREATE TABLE table_name (list1 int NOT NULL)

1.NOT NULL:不允许为空

2.UNIQUE:不允许重复,CREATE TABLE table_name (list1 int NOT NULL,UNIQUE (list1))

可以为该约束命名 CONSTRAINT name UNIQUE(list)

若表已经创建,ALTER table ADD UNIQUE(list)

撤销 ALTER table DROP UNIQUE

3.PRIMARY KEY:主键必须值唯一,只能有一个主键

4.FOREIGN KEY:指向另一个表的主键

CREATE TABLE table_name (list1 int NOT NULL,FOREIGN KEY (list1) REFERENCES table2(list2))

5.CHECK:限定定义的列的值范围 如CHECK (list>0)

6.DEFAULT:CREATE TABLE table_name (list1 int DEFAULT ‘hello’)不赋值则为默认值

表已经存在,ALTER table ALTER List SET DEFAULT ‘hello’

撤销 ALTER table ALTER list DROP DEFAULT

创建索引,可以更快地进行查询数据操作,但是更新一个包含索引的表会更加费时,用户无法看到索引

CREATE INDEX index_name ON table_name(column_name)可以使用倒序进行索引,加上DESC关键字

DROP:删除表,数据库或者删除索引

DROP TABLE table_name

DROP DATABASE db_name

DROP INDEX index_name

ALTER:添加,修改或者删除列

1.添加:ALTER TABLE table_name ADD Birthday data(type)

2.修改: ALTER TABLE table_name ALTER COLUMN Birthday year

3.删除:ALTER TABLE table_name DROP COLUMN Birthday

AUTO INCREMENT:自动为主键增加值

CREATE TABLE table_name(id int NOT NULL AUTO_INCREMENT PRIMARY KEY (id)) id从1开始增加

通过ALTER TABLE table_name AUTO_INCREMENT=100来设置初始值

SELECT顺序

SELECT

FROM

WHERE

GROUP BY

HAVING

ORDER BY

LIMIT
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql