1.创建表
CREATE TABLE table_name(
col_name date_type [Constraints],
...
col_namen date_type [Constraints]
);
2.设置主键约束
(1)col_name data_type PROMARY KEY
(2)PRIMARY KEY (col_name)
3.设置自增约束
col_name data_type AUTO_INCREMENT
4.设置非空约束
col_name data_type NOT NULL
5.设置唯一性约束
(1)col_name date_type UNIQUE
(2)UNIQUE KEY(col_name)
6.设置无符号约束
col_name data_type UNSIGNED;
7.设置默认约束
col_name data_type DEFAULT value
8.设置外键约束
CONSTRAINT 外键名 FOREIGN KEY(从表外键约束的字段名)
REFERENCES 主表名(主表名主键的字段名)
9.查看表基本结构
DESCRIBE table_name;
10.查看建表语句
SHOW CREATE TABLE table_name \G
11.修改表名
ALTER TABLE old_table_name RENAME new_table_name;
12.修改字段数据类型
ALTER TABLE table_name MODIFY col_name new_data_type;
13.修改字段名
ALTER TABLE table_name CHANGE old_col_name new_col_name data_type;
14.添加字段(在表的最后一列添加字段)
ALTER TABLE table_name ADD col_name data_type;
15.添加字段(在表的第一列添加字段)
ALTER TABLE table_name ADD col_name data_type FIRST;
16.添加字段(在表的指定列之后添加字段)
ALTER TABLE table_name ADD col_name1 data_type AFTER col_name2;
17.删除字段
ALTER TABLE table_name DROP col_name;
18.修改字段顺序
ALTER TABLE table_name MODIFY col_name data_type FIRST | AFTER col_name2;
19.修改存储引擎
ALTER TABLE table_name ENGINE=e_name;
20.设置存储引擎
CREATE TABLE category (
id INT(11) PRIMARY KEY,
name VARCHAR(30),
p_id INT(11)
) ENGINE=MyISAM;
21.查看存储引擎
SHOW CREATE TABLE table_name \G
22.删除没有被关联的表
DROP TABLE [IF EXISTS] table_name1,table_name2,……,table_namen;
23.删除被其他表关联的主表
(1)删除外键
ALTER TABLE table_name DROP FOREIGN KEY key_name;
(2)再删除主表
3、数据操作
1.插入:
(1)向表中所有字段插入数据:
1)指定字段及其值:
INSERT INTO table_name(col_name1,col_name2...)VALUES(value1,value2...);
2)不指定字段只列出字段值:
INSERT INTO table_name VALUES(value1,value2...);
(2)向表中指定字段插入数据:
INSERT INTO table_name(col_name1,col_name2...)VALUES(value1,value2...);
(3)同时插入多条数据:
INSERT INTO table_name(col_name1,col_name2...)VALUES(value1,value2...),
(value1,value2...),(value1,value2...);
(4)将其他表中的数据插入列表中:
INSERT INTO table_name1(col_name1,col_name2...)SELECT col_name1,col_name2...
FROM table_name2;
2.修改:
(1)修改所有数据:
UPDATE table_name SET col_name1=value1,col_name2=value2...col_namen=valuen;
(2)修改指定数据:
UPDATE table_name SET col_name1=value1,col_name2=value2... WHERE condition;
3.删除:
(1)删除所有数据:
DELETE FROM table_name;
(2)删除指定数据:
DELETE FROM table_name WHERE condition;
4、单表数据查询
1.查询所有字段数据:
SELECT {*|col_list} FROM table_name;
2.查询指定字段的数据:
SELECT col_name1,col_name2... FROM table_name;
3.查询数据库中符合一定条件的数据:
SELECTE {*|col_list} FROM table_name WHERE condition;
4.符号:“=” “>=” “<>”(不等于)
5.关键字: AND OR
6.使用IN关键字可以查询字段值等于指定集合中任意一个值的记录:
SELECT {*|col_list} FROM table_name WHERE col_name IN (value1,vallue2,...valuen);
7.IS NULL关键字用于查询字段值为NULL的记录:
SELECT {*|col_list} FROM table_name WHERE col_name IS NULL;
8.和NOT关键字配合使用,用于查询字段值不为NULL的记录
SELECT {*|col_list} FROM table_name WHERE col_name IS NOT NULL;
9.BETWEEN AND关键字,用于查询字段值在某个范围内的记录:
SELECT {*|col_list} FROM table_name WHERE col_name (NOT)BETWEEN value1 AND value2;
10.查询goods表中字段type不重复的值:
SELECT DISTINCT type FROM goods;
11.使用LIKE关键字的查询又称为模糊查询:
SELECT {*|col_list} FROM table_name WHERE col_name LIKE value;
12.通配符“%”:通配符“%”可以匹配任意长度的字符,可以是0个,也可以是1个或多个。
13.通配符“_”:使用方法与通配符“%”类似,都可以出现在匹配字符的任意位置,但通配符“_”只能匹配一个字符。
14.查询结果按照指定的顺序排列,使用ORDER BY关键字:
SELECT {*|col_list} FROM table_name ORDER BY col_name [ASC|DESC];
15.多字段排序
SELECT * FROM table_name ORDER BY col_name1 ASC,col_name2 ASC;
16.降序排序关键字DESC:
SELECT * FROM table_name ORDER BY col_name DESC;
17.使用LIMIT关键字来限制查询结果的数量:
SELECT {*|col_list} FROM table_name LIMIT [offset_start,]row_count;
18.聚合函数查询的基本语法:
SELECT function(*|col_name)FROM table_name WHERE condition;
COUNT()函数:计算表中记录的条数。
SUM()函数:计算字段值的总和。
AVG()函数:计算字段值的平均值。
MAX()函数:查询表中字段值的最大值。
MIN()函数:查询表中字段值的最小值。
19.COUNT(*):计算表中总的记录数,不管表字段中是否包含NULL值。
COUNT(col_name):计算表中指定字段的记录数,在具体统计时将忽略NULL值。
20.简单分组查询:
将GROUP BY 关键字与聚合函数COUNT()一起使用,可以查询每组的数量:
SELECT type,count(*) FROM goods GROUP BY type;
21.将每种类型中包含的商品名称显示出来,可以使用group_concat()函数:
SELECT type,group_concat(name) FROM goods GROUP BY type;
22.GROUP BY 和HAVING一起使用,可以指定显示记录所需满足的条件:
SELECT type,count(*) FROM goods GROUP BY type HAVING COUNT(*)>1;
23.WHERE子句和HAVING子句都具有按照条件筛选数据的功能,两者的区别主要有以下几点:
(1)WHERE子句在进行分组操作之前用来选择记录,而HAVING子句在进行分组操作之后通过过滤来选择分组。
(2)HAVING子句中的每个字段必须被包含在SELECT关键字后的字段列表中。
(3)HAVING子句可以包含聚合函数,但WHERE子句不能。
24.使用多个字段进行分组:
SELECT type,num,group_concat(name),count(name) FROM goods GROUP BY type,num;
5、多表数据查询
(1)连接查询(JOIN)
1.使用关键字JOIN对表执行连接查询操作。
2.前提条件:这些表中必须存在具有相同意义的字段。
3.连接查询主要包括内连接查询和外连接查询。
4.复合条件连接查询:在连接查询中添加过滤条件,筛选符合条件的数据。
(1)内连接查询(INNER JOIN):使用比较运算符对多个表间的某些列数据进行比较,并列出这些表中与连接条件相匹配的数据行,组合成新的记录。
普通内连接查询:SELECT col_list FROM table_name1 INNER JOIN table_name2 ON condition;
(2)外连接查询(OUTER JOIN):是以一张表为基表,根据连接条件,与另外一张表的每一行进行匹配,如果没有匹配上,则在相关联的结果行中,另一张表的所有选择列均返回空值。
(3)外连接查询通常分为两种:左连接查询(LEFT JOIN)和右连接查询(RIGHT JOIN)。其基本语法形式如