美文网首页
mysql基础语法和小知识点整理

mysql基础语法和小知识点整理

作者: kentchen91 | 来源:发表于2017-03-09 14:25 被阅读85次
    备注:(大神勿喷!!!)
    • mysql 数据库命令不区分大小写,但是在Mac 终端中,如果想使用补全命令必须使用大写。
    • 默认创建的数据库默认不支持中文字符,如果我们需要它支持中文字符,则将它的编码设置为utf8格式,使用alter 来修改。
    • 数据库语句用分号结束,如果没有输入分号会有个-> 等待你继续输入的符号。

    1.数据库管理

    1.1 create 创建数据库

    create database testDB;
    

    1.2 show 查看所有数据库

    show databases;
    

    1.3 alter 修改数据库
    alter 命令修改数据库编码:

    ALTER DATABASE testDB CHARACTER SET UTF8;
    

    1.4 use 使用数据库
    要创建和修改表的时候 要先进入对应的数据库中

    use testDB;
    

    1.5 查看当前使用的数据库

    select database();
    

    1.6 drop 删除数据库

    drop database testDB;
    

    2. 表管理

    2.1 create 创建表

    create table  T_PEOPLE (
      -> ID int AUTO_INCREMENT PRIMARY KEY,
      -> NAME varchar(20) not null,
      -> AGE int not null,
      -> BIRTHDAY datetime);
    

    2.2 show 显示表

    show tables;
    

    2.3 desc 查看表结构

    desc T_PEOPLE;
    

    2.4 alter 修改表结构(增、删、改)
    默认创建的表不支持中文字符,所以需将表编码设置为utf8:

    ALTER TABLE T_PEOPLE CONVERT TO CHARACTER SET UTF8;
    
    2.4.1 insert 在表中添加列(字段)
    alter table T_PEOPLE add star BOOL;
    
    2.4.2 alter 修改表(列)字段
    alter table T_PEOPLE DROP column star;
    
    2.4.3 删除表(列)字段
    alter table T_PEOPLE DROP column star;
    
    2.4.4 rename 重命名表名
    RENAME TABLE PEOPLE TO NEW_PEOPLE;
    

    2.5 create 利用已有数据创建新表

    create table newTable select * from T_PEOPLE;
    

    3. 数据的操作及管理

    3.1 增加数据(增)

    insert into T_PEOPLE VALUES (null, ‘Anny‘, 22, ‘1992-05-22‘);
    

    3.2 删除数据(删)

    delete from T_PEOPLE where name = ‘Lisa‘;
    

    3 修改数据(改)

    update T_PEOPLE set name=‘Calvin‘ where name = ‘Garvey‘;
    

    3.4 查询数据(查)

    select * from PEOPLE;
    

    格式:select * from <表名>,星 代表所有字段。

    查询数据时也可指定显示的(列)字段:

    select NAME, AGE, BIRTHDAY from T_PEOPLE;
    

    4 一些简单的例子

    • 建表
    create table if not exists t_b2 (id integer primary key autoincrement ,name text NOT NULL DEFAULT ' ' collate nocase,phone text not null default '请输入',email text not null default ' 'collate nocase,unique(name,phone) )   ;
    
    • like
      查询以j 开头的 名字 like ‘j%’
      % 是贪婪匹配 可以匹配该字符本身之外的所有字符 可以和not 配合使用否定一些模式
    select  *from tb2 where name like '%ch%' and name not like  ‘%en’ ;
    
    • limit
      限制返回纪录的最大数 offset指定偏移记录
     select  *from tb2 orderby id desc  limit 1 offset 1 ;
    

    limit 和offset 一起用时候可以用逗号代替offset 例如 limit 2,1 等于limit 1 offset 2;

    • 数学函数
    select  id ,upper(name),length(name) from  tb2  limit 10;
    select  id ,upper(name),length(name) from  tb2  where length(name) <5 limit 10;
    
    • 聚合函数
      是从一组纪录中计算聚合值 包括sum(), avg(), count(), min(), max()
    select  count(*)from tb2 where length(name) >3;
    select  avg(length(name))from tb2 ;
    

    不仅可以对from 进行计算 也可以对where子句进行计算

    • 聚合的主要部分是分组
      group by 和select 区别 前者接收where子句的输出,并将其分割成共享某个字段上同等值的小组 后者接收所有的组

    例如获取每个type_id 组的数量

    select  type_id ,count(*) from food group by type_id;
    
    结果示例 type_id   count(*)
                      1             22
    

    group by 可以配合having 来过滤约束作用

    select  type_id ,count(*) from food group by type_id having count(*) < 20 ;
    

    计算count 的时候最好加入聚合语句 (group by)

    • distinct 去掉重复
    select  distinct name  from tb2
    
    • 符号表示
    <> 不等于
    >''大于零的意思
    isnull 不为null值
    
    • 指数或者小数点 用real 类型
    • 十六进制存储为blob 类型
    • sqlite 不支持 TRUNCATE
    • using 使用
    select t_author.id, t_peoples.name from t_author left join t_peoples using(id);
    

    相关文章

      网友评论

          本文标题:mysql基础语法和小知识点整理

          本文链接:https://www.haomeiwen.com/subject/namwgttx.html