找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
create database [数据库名]:创建一个库
show databases:显示所有的数据库
drop database [数据库名]:删除数据库                                                                 (库)
use [数据库名]:进入这个数据库(刚进来可能处于数据库门口)
select database():查看当前所在数据库名称

show tables:查看当前库的所有表
创一个表:create table [表名] (字段1名 数据类型名(长度) 约束 约束 备注,        ,     )             (创表)
utf-8:一个汉字=3个字节
gbk:一个汉字=2个字节(utf-8,gbk都是字符集格式)
int   整数   4字节
bigint   超大的整数    8字节
float     浮点型      4字节                                                                                              (类型)
char     固定长度的字符串     最大字符长度255         2的8次方减1
varchar      最大限制的可变长度    最大65535字符
date       yyyy-mm-dd 格式的日期    3字节
time       hh:mm:ss 格式的时间       3字节
datetime      日期+时间     8字节
year        年          1字节                       (时间直接在字段名后接上时间类型,不需要长度)

约束:表中的限制条件
1、非空约束(not null)用于保证字段的值不能为空
2、唯一约束(unique)保证字段值最具有唯一性(不能重复),并且为空
3、主键约束(primary key)用于保证字段具有唯一性,并且非空
4、外键约束(foreign key)
5、默认:default                                                                                                                     (约束)
6、自增长:auto_increment(与主键约束一起用,针对id,每插入一条数据,指定的字段值+1)
添加约束的时机:
1、建表  2、修改表
主键约束与唯一约束的区别:
主键:不允许为空,最多一个,允许组合
唯一:允许为空,可以有多个,允许组合

show tables:查看当前库的所有表
desc 表名:查看表结构(Field、Type、Null、Default、Extra)
alter table [表名] rename [新表名]:修改表名
alter table [表名] change [原字段名] [新字段名] [新数据类型] [新约束]    (属于修改表,增删约束)
eg:alter table test1 change id id1 int(10) auto_increment;
alter table [表名] add [新字段名] [新数据类型] [新约束] first:添加表字段(first放到首行)
                                                                                      after 字段名:添加表字段(放在某字段后)
alter table [表名] add ([新字段名] [新数据类型],[新字段名] [新数据类型]):同时添加2个字段
alter table [表名] modify [字段名] [数据类型] after [字段名]:调整字段位置(第一个字段名后要加字符类型,还可以加新约束)
alter table [表名] drop [字段名]:删除字段                                                           (对表结构的修改)
alter table [表名] drop [字段名],drop [字段名]:同时删除多个字段
drop table [表名]:删除表


insert into [表名] (字段,字段,字段,字段)values(1,'xiaofu',124145,'9班'):完整插入一条数据所有字段
insert into [表名] (字段)values('dafu'):插入一条数据部分字段
insert into [表名] (字段,字段)values(1,1234),(2,3256):插入2条数据部分字段             (插入数据)
(没设置的字段,根据约束条件进行赋值)

select [字段名] from [表名]:查看字段名的所有数据
select [字段名],[字段名] from [表名]:查看多个字段名的所有数据
select * from [表名]:查看所有数据(选择*所有)
select * from [表名] where 条件:指定条件查询数据(字段名=字段值)                         (查询数据)
  条件:
        =、!=(<>)、>=、<=、<、>
        条件A and 条件B(同时满足)、条件A or 条件B、
        字段名 between  2 and 5(包含了本身)、
        字段名in(1,2,9)(指定数据中选)、not in、 is null、is not null
        where 字段名 like 'x%' :匹配x开头的数据
        where 字段名 like '%x%' :含有x的数据
        where 字段名 like '%x' :匹配x结尾的数据
        where 字段名 like '__':匹配字段值中2位字符的数据(_表示一个字符)
        where 字段名 like 'x__':匹配字段值中以x开头后任意2位字符的数据
select * from [表名] limit 下标值,行数(2,3表示从第3行开始,取3行)    (不加where)
select * from [表名] limit 行数(默认第1行开始,取行数)                            (不加where)
对表中数据进行排序order by,asc升序,desc降序(ascend,descend)
降序:select * from [表名] order by [字段名] desc
升序:select * from [表名] order by [字段名] asc       (升序asc可以省略不写)
group by (分组,有多少不同分多少组,对于每个班每个人就要用分组)
               (一般不会单独使用,通常与聚合函数组合使用)
               (group by 后查询出来的结构,再需要根据条件查询用having)
               (使用group by时,select 和 from之间只能有函数和group by 对应的字段名
select * from [表名] group by [字段名]  :根据字段名分组显示
select count(*) from [表名] :查询表有多少条数据           (count计数)
select [字段名],count(*) from [表名] group by [字段名]:
eg :select class,count(*) from test1 group by class(分别显示class与count(*))
select count(*) from [表名] group by [字段名]:
eg:select count(*) from test1 group by class  (查询class中count(*)计数)
select [字段名],count(*) from [表名] group by [字段名] having 条件(HAVING子句中不能使用除了分组字段和聚合函数之外的其他字段)
select [字段名],count(*) from [表名] where math>80 group by class;    (什么时候用having和where)
eg:select class,count(*) from test1 group by class having class!='9ban'
select sum(字段名) from [表名] group by [字段名]
          avg
          max
          min
select distinct (字段名) from 表名   (消重复)
where,having与group by连用的区别:(where后不能接聚合函数)
select 列a,聚合函数 from 表名 where 过滤条件 group by 列a having 过滤条件
group by 字句也和where条件语句结合在一起使用。当结合在一起时,where在前,group by 在后。即先对select xx from xx的记录集合用where进行筛选,然后再使用group by 对筛选后的结果进行分组 使用having字句对分组后的结果进行筛选
需要注意having和where的用法区别:
1.having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)。
2.where肯定在group by 之前
3.where后的条件表达式里不允许使用聚合函数,而having可以。


update [表名] set [字段]=[字段值] where 条件                                                     (改数据)

delete from [表名] where 条件:删除满足条件的数据
delete from [表名]:删除全表数据,但保留表结构                                                 (删除数据)
drop table [表名]:删除表数据和表结构
truncate [表名]:删除表数据(delete删除的数据可以通过日志恢复)
备份
create table [新表名] like [原表]:备份表结构
insert into [新表] select * from [原表]:往新表里插入原表中所有数据
insert into [新表] (name,class) select name,class from [原表]:往新表里插入部分数据
(1、插入的表必须存在2、插入的表是新表,没有数据)
mysqldump -uroot -p123456789 库名>目录下文件xxx.sql  :把库备份到目录下xxx.sql文件中
mysql -uroot -p123456789 库名<目录下文件xxx.sql :把文件还原到库中(库要先存在,不然会找不到库)

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册