创建数据库
create database mydb_01; //创建数据库
show databases; //查看该帐号下的所有数据库
show create database mydb_01; //查看创建的指定数据库的信息,默认字符集编码是utf-8;
show character set; //查看mysql支持的所有字符集
alter database mydb_01 character set gbk; //修改数据库的字符集编码为gbk
create database day001 character set gb2312;//直接创建一个字符集编码为gb2312的数据库
drop database day001;//删除数据库
创建表的前提条件:指明使用的数据库 :use mydb_01;
create table student (id int,name varchar(100),gender varchar(100),age int...);//创建表
show tables;//查看数据库下的所有表
desc student;//查看指定的表的字段信息(表的内容)
-- 修改表
alter table student add email varchar(50);//修改表(添加一个列)
alter table student modify gender varchar(30);//修改表的某一个列的类型
alter table student change gender sex varchar(10);//修改列的名称
alter table student drop age;//删除表的一个列(删除的是已知的列所以不需要类型)
rename table student to stu;//修改表名
alter table student rename to stu; //修改表名
show create table stu;//查看创建表的语句
create table 新表名 like 旧表名; //复制一份表结构一样的表
drop table stu;//删除表
drop table if exists 表名; //删除表
二、DML:数据库表的操作语言插入:insert
insert into 表名 values(值1,值2,值3...) ;//插入全表数据 :那么每一个参数值必须和字段类型匹配! (不会报错,警告)
修改:update
update stu set age=18 where id=1 ;//修改
select * from 表名; //查询表信息
删除:delete
delete from stu where id=1;//条件删除
delete from stu;//删除全表数据
truncate table stu;//删除整个表以及表中的数据,重新创建了一个新的表
三、DQL:数据库表的查询语言1.基础查询
select * from my_user;
2.条件查询
条件查询就是在查询时给出WHERe子句,在WHERe子句中可以使用如下运算符及关键字: =、!=、<>、、>=; BETWEEN…AND; IN(set); IS NULL; IS NOT NULL ; AND; OR;
NOT..
-- 内置函数ifnull(值1,值2) ; ifnull(english,0) : --- 把NULL转换成数值0的函数IFNULL
3.模糊查询:
当想查询姓名中包含f字母的学生时就需要使用模糊查询了.模糊查询需要使用关键字LIKE。 通配符: _ 任意一个字符 %:任意0~n个字符
4.排序 order by 列名 asc(默认) desc
--排序order by:默认增序,递增asc,递减desc
5.字段控制查询
--去除重复记录 DISTINCT
6.聚合函数 单行单列的数据
sum avg max min count 聚合函数是用来做纵向运算的函数
-- count(列名) :总记录数
-- max(列名): 最大值
-- min(列名字段):最小值
-- sum(字段名称):求和
-- avg(列名):平均分
-- select 聚合函数(列名) from 表名;
7.分组查询
7.1需要分组查询时需要使用GROUP BY子句
1)where之后 才能使用group by
2)后面不能使用聚合函数
7.2HAVINg子句
having与where的区别: 1.having是在分组后对数据进行过滤.后面可以使用聚合函数 2.where是在分组前对数据进行过滤,不可以使用聚合函数
-- having 必须置于group by 之后,where 置于 group by 之前
-- group by不能聚合函数,但是having后面可以聚合函数
8.LIMIT用来限定查询结果的起始行,以及总行数
查询总结:
select * from 表名 where 行条件 group by 列名 having 条件 order by 列名 limit start,count
①执行顺序:from where 得到一个虚拟表1
②group by having :先分组再从组中取出符合having的条件 得到一个虚拟表2
③select:在所有条件完成后去查询
④order by
⑤limit