DDL语句
数据库操作
创建数据库
create database 数据库名;
create database 数据库名 character set 字符集;
查看数据
查看数据库服务器中的所有的数据库:
show databases;
查看某个数据库的定义的信息:
show create database 数据库名;

删除数据库(慎用)
drop database 数据库名称;
其他数据库操作命令
切换数据库:
use 数据库;
查看正在使用的数据库:
select database();

表操作
字段类型
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
-
数值类型
image.png
-
日期和时间类型
image.png
-
字符串类型
image.png
注意:
char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。
CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
查看表结构
desc 表名;
show create table 表名;
修改表
alter table 表名 add 列名 类型(长度) 约束; --修改表添加列.
alter table 表名 modify 列名 类型(长度) 约束; --修改表修改列的类型长度及约束. alter table 表名 change 旧列名 新列名 类型(长度) 约束; --修改表修改列名.
alter table 表名 drop 列名; --修改表删除列.
rename table 表名 to 新表名; --修改表名
alter table 表名 character set 字符集; --修改表的字符集
DML语句
插入语记录
insert into 表 (列名1,列名2,列名3..) values select (列名1,列名2,列名3..) from 表
insert into 表 values select * from 表
更新记录
update 表名 set 字段名=值,字段名=值 where 条件;
删除记录
删除表中所有记录使用【delete from 表名】,还是用【truncate table 表名】?
删除方式:
- delete :一条一条删除,不清空auto_increment记录数。
- truncate :直接将表删除,重新建表,auto_increment将置为零,从新开始。
DQL语句
完整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 >
分组
-- 根据cid字段分组,分组后统计商品的个数.
select cid, count(*) from product group by cid;
-- 根据cid分组,分组统计每组商品的平均价格,并且平均价格 > 60;
select cid, avg(price) from product group by cid having avg(price)>60;
- 注意事项
- select语句中的列(非聚合函数列),必须出现在group by子句中
- group by子句中的列,不一定要出现在select语句中
- 聚合函数只能出现select语句中或者having语句中,一定不能出现在where语句中。
网友评论