创建数据库
create database 数据库名称;
create database 数据库名称 character set 字符集;
查看数据库
show database;
查看某个数据库的定义信息
show create database 数据库名称;
删除数据库(慎用)
drop database 数据库名称;
表操作
字段类型:
常用的字段类型:
数字型 int
浮点型 double
字符型 varchar(可变字符串)
日期类型 date(只有年月日,没有时分秒)
datetime(年月日时分秒)
boolean类型: 不支持。一般使用tinyint替代(值为0和1)
创建表:
create table 表名(
字段名 类型(长度) 约束,
字段名 类型(长度) 约束
);
单表约束:
主键约束:primary key
唯一约束:unique
非空约束:not null
注意:主键约束 = 唯一约束 + 非空约束
查看数据库中的表:
show tables;
查看表结构:
desc tableName;
删除表:
drop tableName;
修改表:
alter table 表名 add 列名 类型(长度) 约束; --修改表结构,添加一列
alter table 表名 modify 列名 类型(长度) 约束; --修改表结构,修改表列,类型,长度,约束
alter table 表名 change 旧列名 新列名 类型(长度) 约束; --修改表,修改列名
alter table 表名 drop 列名; --修改表,删除列
rename table 旧表名 to 新表名; --修改表名
alter table 表名 character set 字符集; --修改表的字符集
插入记录:
insert into 表名 (列1,列2...) values (值1,值2..); --向表中插入某些列
insert into 表名 values (值1,值2,值3...); --向表中插入所有列
insert into 表名 (列1,列2...) values select (列1,列2...) from 表名; --从其他表中查询数据插入到新表中
insert into 表名 values select * from 表名; --从其他表中查询所有列插入新表中
例:INSERT INTO sort(sid,sname) VALUES('s001', '电器');
修改记录:
update 表名 set 字段名1 = 值1,字段名2 = 值2 where 条件;
删除记录:
delete from 表名 WHERE 条件;
delete from 表名 与 truncate from 表名的区别?
-delete 是一条一条删除,不清空auto_increment记录数;
-truncate 是将表删除,重新建表,设置auto_increment为0,重新开始。
完整的DQL语法顺序
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的执行顺序
先进行行过滤,在进行列过滤
--行过滤
FROM <left_table>
ON <join_condition>
<join_type> JOIN <right_table>
WHERE <where_condition>
GROUP BY <group_by_list>
HAVING <having_condition>
--列过滤
SELECT
DISTINCT <select_list>
--排序
ORDER BY <order_by_condition>
--MYSQL附加
LIMIT <limit_number>
常用的聚合函数
sum() 求一列的和
avg() 求一列的平均值
max() 求一列中的最大值
min() 求一列中的最小值
count() 求一列中的元素个数
WHERE条件的解析顺序
MYSQL:从左往右去执行where条件