数据库操作
- 创建数据库(CREATE DATABASE)
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [ [DEFAULT] CHARACTER SET [=] latin1/utf8/gbk ];
创建同名的数据库会报错。加上IF NOT EXISTS,不出现错误,而是警告。 - 查看数据库
(1)判断是否创建成功。SHOW {DATABASES | SCHEMAS};
(2)显示数据库创建时指令。SHOW CREATE DATABASE db_name;
- 修改数据库(ALTER DATABASE)
ALTER DATABASE db_name [ [DEFAULT] CHARACTER SET [=] latin1/gbk/utf8 ];
- 删除数据库(DROP DATABASE)
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;
IF EXISTS与IF NOT EXISTS作用类似,已经删除的数据库再删除会报错。加上IF EXISTS,只有警告。
数据表操作
- 创建数据表(CREATE)
(1)使用USE打开数据库:USE db_name
显示用户当前打开的数据库:SELECT DATABASE();
(2)创建。CREATE TABLE [IF NOT EXISTS] table_name (column_name date_type, …);
column_name:列名称 date_type:数据类型 - 查看数据表(SELECT)
SHOW TABLES [FROM db_name] [LIKE ‘pattern’|WHERE expr];
(1)查看MySQL中所有数据表。
SHOW TABLES FROM mysql;
(2)查看数据表结构。
SHOW COLUMNS FROM tb_name;
DESC tb_name;
- 删除数据表(DROP)
DROP TABLE tb_name;
- 修改数据表(ALTER)
- 增加/删除/修改列
- 添加单列
ALTER TABLE tb_name ADD [CLOUMN] col_name column_definiton [ FIRST | AFTER col_name ];
- 添加多列
ALTER TABLE tb_name ADD [CLOUMN] (col_name column_definiton,…);
- 删除列
ALTER TABLE tb_name DROP [CLOUMN] col_name;
- 同时删除两列
ALTER TABLE tb_name DROP [CLOUMN] col_name, DROP [CLOUMN] col_name;
- 删除的同时添加
ALTER TABLE tb_name DROP [CLOUMN] col_name, ADD [CLOUMN] col_name column_definiton [ FIRST | AFTER col_name ];
- 修改列定义
ALTER TABLE tb_name MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name];
- 修改列名称
ALTER TABLE tb_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST | AFTER col_name];
可修改列名称也可修改列定义 - 数据表更名
ALTER TABLE tb_name RENAME [TO|AS] new_tb_name;
RENAME TABLE tb_name TO new_tb_name [,tb_name1 TO new_tb_name1]…;
- 添加/删除约束
- 添加/删除主键约束
ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,…);
ALTER TABLE tb_name DROP PRIMARY KEY;
- 添加/删除唯一约束
ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] UNIQUE [KEY|INDEX] [index_name] [index_type] (index_col_name,…);
ALTER TABLE tb_name DROP {INDEX | KEY} index_name;
- 添加/删除外键约束
ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,…) REFERENCES_definition;
ALTER TABLE tb_name DROP FOREIGN KEY fk_symbol;
- 添加/删除默认约束
ALTER TABLE tb_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT};
记录增删改查
-
插入数据(INSERT)
INSERT [INTO] tb_name [(col_name,…)] {VALUES|VALUE} ({expr|DEFAULT},…),(…),…;
省略掉列名称时所有的字段都要赋值。
对于自动编号字段:既可以写DEFAULT,NULL实现默认值,也可以自己赋值 。
对于有默认值字段:即可以写DEFAULT,也可以自己赋值。
对于数字类型字段:即可以写数字,也可以写表达式、函数等等。
INSERT [INTO] tb_name SET col_name = {expr|DEFAULT},…;
此方式可以进行子查询(SubQuery)
INSERT [INTO] tb_name [(col_name,…)] SELECT…;
此方式可以将查询结果插入到指定数据表 -
删除数据(DELETE)
单表删除记录
DELETE FROM tb_name [WHERE where_condition];
WHERE:条件表达式,不写则删除所有记录 -
更新数据(UPDATE)
单表更新
UPDATE tb_name SET col_name={ expr | DEFAULT } [ , col_name1={ expr|DEFAULT } ]… [ WHERE where_condition ];
多表更新
UPDATE table_references SET col_name1 = {expr1 | DEFAULT} [, col_name2 = { expr2 | DEFAULT }]… [WHERE where_condition]
WHERE:条件表达式,不写则更新所有记录 -
查询数据(SELECT)
SELECT expr [,expr…] [ FROM table_references [WHERE where_condition] [GRUOP BY {col_name | position)}[ASC | DESC],…] [HAVING where_condition] [ORDER BY {col_name | expr |position} [ASC | DESC],…] [LIMIT {[offset,] row_count | row_count OFFSET offset}] ];
多个列之间以英文逗号分隔。
每一个表达式表示想要的一列,必须有至少一个。
星号(*)表示所有列。tb_name.*可以表示命名表的所有列。
可使用[AS] alias_name
起别名。别名可用于ORDER BY
,GROUP BY
,HAVING
字句。
WHERE:条件表达式,不写则查询所有记录
GROUP BY:查询结果分组
HAVING:分组条件
ORDER BY:查询结果排序(默认升序)
LIMIT:限制查询结果数量
网友评论