mysql基础
大约 2 分钟
DDL(Data Definition Language)
-- 创建数据库
create database 数据库名 character set 字符集;
-- 查看数据库服务器中的所有的数据库:
show databases;
-- 查看某个数据库的定义的信息:
show create database 数据库名;
-- 删除数据库(慎用)
drop database 数据库名称;
-- 切换数据库:
use 数据库名;
-- 查看正在使用的数据库:
select database();
-- 创建表
create table t ( id int primary key, c varchar(100) unique, d varchar(200) not null ) engine = innodb charset = utf8;
-- 查看表结构
desc tableName;
-- 删除表
drop table tableName;
--修改表添加列.
alter table 表名 add 列名 类型(长度) 约束;
--修改表修改列的类型长度及约束.
alter table 表名 modify 列名 类型(长度) 约束;
--修改表修改列名.
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
--修改表删除列.
alter table 表名 drop 列名;
--修改表名
rename table 表名 to 新表名;
--修改表的字符集
alter table 表名 character set 字符集;
DML(data manipulation language)
-- 向表中插入某些列
insert into 表 (列名1,列名2,列名3..) values (值1,值2,值3..);
-- 更新记录
update 表名 set 字段名=值,字段名=值 where 条件;
-- 删除记录
delete from 表名 [where 条件];
删除表中所有记录使用【delete from 表名】,还是用【truncate table 表名】?
- delete :一条一条删除,不清空 auto_increment 记录数。
- truncate :直接将表删除,重新建表,auto_increment 将置为零,从新开始。
DQL(Structure Query Language)
SELECT DISTINCT <select_list>
FROM <left_table> <join_type>
JOIN <right_table> ON <join_condition>
WHERE <where_condition>
GROUP BY <group_by_list>
HAVING <having_condition>
ORDER BY <order_by_condition>
LIMIT <limit_number>
SQL 解析顺序
-- 行过滤
1 FROM <left_table>
2 ON <join_condition>
3 <join_type> JOIN <right_table> -- 第二步和第三步会循环执行
4 WHERE <where_condition> -- 第四步会循环执行,多个条件的执行顺序是从左往右的。
5 GROUP BY <group_by_list>
6 HAVING <having_condition>
--列过滤
7 SELECT -- 分组之后才会执行SELECT
8 DISTINCT <select_list>
-- 排序
9 ORDER BY <order_by_condition>
-- MySQL附加
10 LIMIT <limit_number> -- 前9步都是SQL92标准语法。limit是MySQL的独有语法。