MySQL基本语法

重点:

操作数据库时要细心, 更新数据库必须带条件

注释为 #

(1)创建数据库
     基本语法:create database 数据库名字 [库选项];
       create database test charset utf8;

         库选项:用来约束数据库,分为两个
         1.字符集设定:charset 具体字符集。常用字符集:utf8和GBK
         2.校对集设定:collate 具体校对集(数据比较的规则)
      如果数据库名字为中文,需要先 set names gbk;
    
(2)查看所有数据库
        show databases;
(3)模糊查询数据库
       查询以information开头的数据库
       show databases like 'information_%';
(4)删除数据库
        drop database 数据库名字;
       注意:危险,不要随意删除,先进行备份

(5)使用数据库
       use 数据库名字;

(6)新增数据表
       creat table [if not exists] 表名(
      字段名字 数据类型,
      字段名字 数据类型
      )[表选项];
     表选项:用来约束数据库,分为两个
        1.字符集设定:charset 具体字符集。常用字符集:utf8和GBK
        2.校对集设定:collate 具体校对集(数据比较的规则)

(7)查看所有表
        show tables;

(8)查看部分表
    查看以s结尾的表
    show tables like '%s’;

(9)查看表结构
       desc 表名;

(10)重命名表名
           rename table 旧表名 to 新表名;
           rename table student to my_student;

(11)修改表选项
       alter table 表名 表选项 = 值;
       alter table my_student charset = gbk;

(12)新增字段
       alter table 表名 add [column] 字段名 数据类型 [列属性][位置];
        first:第一个位置
        after:在哪个字段之后:after 字段名;默认的是在最后一个字段之后;

(13)修改表的某个列的数据类型(放到谁的后面)
          alter table 表名 modify 列名 数据类型  [after 列名];
          alter table my_student modify number varchar(10) [after id];
(14)重命名字段
          alter table 表名 change 旧字段 新字段 数据类型 [属性][位置]
         alter table my_student change gender sex varchar(5);
(15)删除number字段
        alter table 表名 drop 字段名;
        alter table my_student drop number;

          删除时应小心;

(16)删除数据表
       drop table 表名;
        drop table class;
       删除有危险,操作需谨慎

(17)新增数据
         1. insert into 表名 values (值列表)[,(值列表)];
              insert into my_student values (2,"shuang","female",20);
             可以一次插入多条记录
    
         2.insert into 表名 (字段列表) values (值列表)[,(值列表)];
           insert into my_student (id,name,sex,age) values (4,"sen","male",21);


(18)查看所有数据
         select * from 表名;
        select * from my_student;

(19)查看符合条件的数据;
         select 所有字段(或部分) from 表名 where 字段 = 某个值;
         select id,name,sex from my_student where id = 2;

(20)更新数据
          update 表名 set 字段 = '值' where 字段 = ‘值’;
             update my_student set id = 3 where name = 'shuang';

(21)删除数据
            delete from 表名 [where 条件];
            delete from my_student where id = 3;

(22)查看数据库识别哪些字符集
    show character set;

(23)查看数据库默认处理什么字符集
         show variables like 'character_set%';
(24)修改数据库认为的客户端数据的字符集为utf8
           set character_set_client = utf8;
            当次连接有效,重连后失效

(25)修改数据库给定的数据字符集为utf8;
        set character_set_results = utf8;
          当次连接有效,重连后失效

(26)创建时间日期表
     create table my_date(d1 datetime,d2 date,d3 time,d4 timestamp,d5 year) charset utf8;


(27)新增一列 语法 : alter table 表名 add column 字段名 数据类型;

(28)查看自增长变量
         show variables like 'auto_increment';

     自动增长 通常与主键搭配
              1.任何一个字段要做自增长前提本身必须是一个索引(key一栏有值)
               2.自增长字段必须是数字(整型)
              3.一张表最多只能有一个自增长
               4.每次从最大值加一

(29)主键:Primary key,用来唯一的约束该字段的数据,不能重复(一张表只有一个主键)
      1. 增加主键:1.在字段后跟Primary key
                         2.当表已经创建好之后,额外追加主键
                             Alter table 表名 add primary key(字段列表);

      2. 主键冲突时,修改或插入数据失败

          主键冲突:替换
          replace into 表名 values(值列表);

     3. 主键必须先删除才能增加
                 alter table 表名 drop primary key;

(30)列描述:comment:

          没有实际含义:专门用来描述字段,会根据表创建语句保存,来给数据库管理员来进行了解的

(31)唯一键(unique key):一张表中有很多字段需要唯一性,但主键只有一个
         允许字段为空
          1.增加唯一键:与主键相同
           2.先删除在更新  alter table 表名 drop index 字段名;

(32)蠕虫复制:从已有的数据中去获取数据,然后将数据有进行新增操作:数据成倍增加
          create table 新表名 like 旧表名; (只复制结构)
          insert into 新表名 select *  from 旧表名;
(33)更新数据:
           update 表名 set 字段 = 值 [where] [limit = 值];(limit限制数量)

(34)删除数据
          delete from 表名 where 字段= 值 [limit = 值];

(35)清空表:重置自增长
          Truncate 表名;


(36)查询数据:

 select [select选项] 字段列表/ * from 数据源 [where条件字句][group by 字句][having 字句] [order by 字句] [limit 条件];
       一.  select选项
               1.all 全部
               2.distinct 去重
       二.where 字句:判断数据,筛选数据
             select * from 表名 where id = 1 || id = 3;
             select * from 表名 where id in(1,3);

      三 . 数据源:数据的来源,关系型数据库的来源都是数据表;
               1.单表数据源  select * from 表名
               2.多表数据源  select * from 表名1,表名2,表名3....(笛卡尔积,交叉连接)

     四.group by 字句 :分组根据某个字段分组
        1. 根据性别分组
             Select * from 表名 group by sex [ asc | desc];

       2.多字段分组:
           先根据一个字段进行分组,然后对分组后的结果再次按照其他字段进行分组
      五: 统计函数:
             count()统计分组后的记录数:1.*:统计每一组有多少记录 2.字段名:统计对应字段
             max():统计每组中最大的值
              avg(): 统计平均值
              sum(): 统计和

             回溯统计:with rollup;
     六:Having 字句:进行条件判断

             对分组后的结果用   having  统计    几乎能用where 的所有

    七:order by:根据某个字段进行升序或降序排序

         order by 字段名 [asc | desc];  (可以多字段排序)

      八:limit 字句:限制数量
          1.指用来限制长度,数据量
           2.限制起始位置,限制数量 select * from 表名 limit 2,2; 从第二个位置起,向后查两个



字段别名
    字段名 [as] 别名;


索引
     1.主键索引:primary key
     2.唯一索引:unique key
     3.全文索引:fulltext index  最大问题:如何确定关键字
     4.普通索引:index 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值