• mysql的简单命令


    MySQL的命令介绍:
     
    连接数据库服务器命令:
    mysql -u 用户名 -p 密码
     
    mysql是连接MySQL数据库的命令 -u表示后跟用户名 -p 后跟密码
     
    如果登录后展示 "mysql >"表示登录成功
     
    退出数据库命名:
    quit;    或者 exit;   (注意MySQL以“;”结束一个语句)。
     
    1、库相关的命令操作:
    1.1、查看所有的库sql:
    show databases;
     
    1.2、创建数据库的SQL:
    create database database_name;
     eg:创建一个名为test1的数据库
     
    1.3、删除数据的SQL:
    drop database database_name;
     
    1.4、选择数据库的SQL:(多个数据库下,选择要使用的)
    use database_name;
     
    1.5、展示当前库下的所有的表SQL:
    show tables;
    2、表操作
     
    2.1、创建表
    create table table_name(
    属性名 数据类型[完整性约束],
    属性名 数据类型[完整性约束],
    ...
    属性名 数据类型[完整性约束]
    );
    注意:在数据库创建的时候要选取合适的数据类型,而且
    还要添加完整性约束,两个属性之间用逗号隔开,
    完整性约束条件有:
    -------------------------------------
         约束条件       | 说明
    primary key        | 修饰的属性是该表的主键
    foreign key         | 修饰的数据是该表的外键
    not null               |表示该字段不能为null   
    unique                |修饰的属性值是唯一的
    auto_increment  |mysql的特色,表示该属性是自增的   
    default                | 设置属性默认值
     
     数据类型:
    int:整型
    data:日期,只包含年月日 yyyy-MM-dd
    datatime:   yyyy-MM-dd  HH:mm:ss
    timestamp:时间戳类型 (包含年月日时分秒)如果将来不给这个字段赋值,或者赋值为null,则默认当前系统的时间自动赋值
    varchar:字符类型
    eg:create table t2(id int primary key, name varchar(5));
     
    2.1、查看表
     
    2.1.1、 desc table_name;
    用desc可以查看表的字段名称、类型、是否为空、约束条件、默认值、备注信息
     
    2.1.2 show create table table_name;
    show create table可以打印创建的表的SQL,
    并且显示该表的存储引擎和字符集编码
     
    3.修改表:
     
    修改数据库字符集:alter database 数据库名称 character set 字符集名称;
     
    修改表名:   alter   table   旧表名  rename(to) 新表名;
     
    修改表的字段类型:alter table 表名 modify 属性名 数据类型;
    eg:alter table t1 id bigint;
     
    修改表中属性名:alter  table  表名  change  旧属性名  新属性名  数据类型;
    eg:alter table t1 change id idd int;
     
    增加新的字段:
    alter table 表名 add 属性名 数据类型 [约束条件] [first/        afters 属性名1];
     
    删除属性:
    alter table 表名 drop 属性名;
     
    修改属性的排列顺序:
    alter table 表名 modify 属性名1 数据类型  first/    after 属性名2;
     
    修改表的存储引擎:
    alter table 表名 engin = innodb | myisam;
     
    4.删除:
     
    drop database 数据库名称
    删除前判断:drop database if not exists 数据库名称
     
    删除属性SQL:
    alter table table_name drop 属性名;
    eg:alter table t1 drop age2;
     
    5.查询
    查询表SQL
    SQL基本的结构如下:
    select 属性列表 from table_name [where 条件表达式1]
    [group by 属性1 [having 条件表达式2]]
    [order by 属性2 [asc | desc]]
     
    5.1 带in的子查询
    [not] in(元素1,元素2...元素n)
    eg:select * from Student where SID in (1,3,5);
     
    5.2 带between and 的范围查询
    [not] between 取值1 and 取值2
    eg:select * from Student where SID between 3 and 7;
     
     5.3 带like的模糊查询字符串
    [not] like 'abc';
    注意:like可以结合通配符使用
    %:表示0个或者是任意长度的字符串
    _:只能表示单个字符 
    eg:select * from Student where Sname like 'CJ%';
       
    5.4 空值查询
    is [not] null;   
    eg:select * from Student where Sage is not null;
     
     5.5 带and 的多条件查询
    条件表达式1 and 条件表达式2 [and ...条件表达式n]
    eg:select * from Student where Ssex ='nan' and Sage=20;
     
     5.6 带or的多条件查询
    条件表达式1 or 条件表达式2 [or ...条件表达式n]
     
     5.7 去重复查询
    select distinct 属性名
    eg:select distinct Sage from Student;
     
     5.8 对结果排序
    order by 属性名 [asc| desc];
    asc:升序(默认是升序)  
    desc:降序
    eg:select * from Student order by SID asc;
     
    5.9 分组查询
    group by 属性名[having 条件表达式]
    eg:select * from Student group by Ssex having Sage >= 18;
     
     5.10 limit分页查询
    不指定起始位置 limit是记录数
    eg:select * from Student limit 3;
     
    指定初始位置是limit的起始位置、记录数
    eg:select * from Student limit 2,5;
     
    多表查询:
    内连接、左连接、右连接
    内连接:将连接的两个表共同存在的数据(共同存在的)获取
    左连接:将左表对应的数据全部展示,左表存在右表 不存在的数据时,将右表对应字段填充为null
    右连接:将右表对应的数据全部展示,右表存在左表不存在的数据时,将左表对应的数据全部填充为null
     
    联合查询
    内连接:
    select 属性名1...属性名n from 表名1 inner join 表名2 on 表名1.属性 = 表名2.属性(注:属性指关联的字段,即使用外键)
    外连接:
    select 属性名1,...,属性名n from 表名1 lift|right join 表名2 on 表名1.属性 = 表名2.属性(注:属性指关联的字段,即使用外键)
    复合查询:select 属性名1 ... 属性名2 from 表名1,表名2 where 表名1.属性 = 表名2.属性
     
    批量插入数据:
    insert into table_name (属性名1,...,属性名n)
    values
    (值11,...值1n),
    (值21,...值2n),
    ...
    (值n1,...值nn);
     
     
    2、索引使用的SQL
     若查询表中存在上万的数据量,使用索引可以大大提高查询效率
    2.1 创建表的时候指定索引字段的SQL
    create table table_name(
       id int primary key,
       name varchar ,
       index(id)
    );
    在创建SQL时指定字段创建索引index(id),指对id字段添加索引
    eg:create table test3(id int, name varchar(5),age int, index(name));
    该表中创建了索引名为'name'作用于name属性到的索引
     
    2.2、在已存在的表中添加索引
    2.2.1、create [unique|fulltext|spatial] index 索引名 on 表名(属性名);
    eg:create index idx_age on test3(age)
     
    2.2.2 alter table 表名 add  [unique|fulltext|spatial] index 索引名 (属性);
    eg:alter table test3 add index idx_id_name(id,name);
     
    2.3、删除索引
    drop index 索引名 on 表名;
    eg:drop index idx_age on test3;
     
    2.4、展示索引
    show create table 表名;
    eg: show create table test3;
        +-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
        | Table | Create Table                                                                                                                                                                                                        |
        +-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
        | test3 | CREATE TABLE `test3` (
          `id` int(11) DEFAULT NULL,
          `name` varchar(5) DEFAULT NULL,
          `age` int(11) DEFAULT NULL,
          KEY `name` (`name`),
          KEY `idx_id_name` (`id`,`name`)
        ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
    其中:KEY 后即为该表中的索引 展示的格式为KEY  索引名(索引对应的字段)
     
     
     
  • 相关阅读:
    感想2
    感想1
    记录4
    记录3
    记录2
    记录1
    库存物资管理系统-测试
    开学测试
    大二下开学测试有感
    大二下周总结一
  • 原文地址:https://www.cnblogs.com/128-cdy/p/11941076.html
Copyright © 2020-2023  润新知