美文网首页
Mysql命令大全

Mysql命令大全

作者: 妄自 | 来源:发表于2018-05-16 14:29 被阅读0次

    1.数据库

    备注 命令 格外设置
    创建数据库 create database mydatabase charset utf8;
    创建关键字数据库(需加反引号 ` ` ,尽量少用关键字创建) create database `database` charset utf8;
    创建中文数据库(需 set names gbk;尽量少用中文创建) create database 中国 charset utf8; set names gbk;
    查看所有数据库 show databases;
    查看以information_开始的数据库: _需要被转义 show databases like 'information_%';
    删除数据库 drop database informationtest;
    进入数据库 use mydatabase;

    2.数据表(有些表操作需先进入当前数据库,指令如:use mydatabase;)

    • 创建表
    create table if not exists mydatabase.student(  -- 显示的将student表放到mydatabase数据库下
    name varchar(10),
    gender varchar(10),
    number varchar(10),
    age int
    )charset utf8;
    
    • 查看所有表
      show tables;
    • 查看以s结尾的表
      show tables like '%s';
    • 查看表创建语句
    show create table student\g -- \g ==== ;
    show create table student\G -- 将查到的结构旋转90度变成纵向
    
    • 查看表结构
    desc class;
    describe class;
    show columns from class;
    
    • 重命名表
    将student改为my_student;
    
    rename table student to my_student;
    
    • 修改表选项: 字符集
    alter table my_student charset = GBK;
    
    • 学生表增加ID放到第一个位置
    alter table my_student
    add column id int
    first;  -- mysql会自动寻找分号: 语句结束符
    
    • 将学生表中的number学号字段变成固定长度,且放到第二位(id之后)
    alter table my_student
    modify number char(10) after id;
    
    • 修改学生表中的gender字段为sex
    alter table my_student
    change gender sex varchar(10);
    
    • 删除学生表中的年龄字段(age)
    alter table my_student drop age;
    
    • 删除数据表
    drop table class;
    
    • 插入数据
    insert into my_student values(1,'itcast0001','Jim','male'),
    (2,'itcast0002','Hanmeimei','female');
    
    • 插入数据: 指定字段列表
    insert into my_student(number,sex,name,id) values
    ('itcast0003','male','Tom',3),
    ('itcast0004','female','Lily',4);
    
    • 插入自增长主键列
    alter table `表格名` add column `列名` int not null auto_increment primary key comment '主键' first;    
    
    上面语句表示给某个表格添加一个自动增长的主键字段,并且将该字段放在第一列,
    如果你想放到其他列后面,可以将上面sql语句中的 first 换成  after `已经有的列名`。
    
    • 查看所有数据
    select * from my_student;
    
    • 查看指定字段,指定条件数据(可查看一个或多个字段)
    select id from my_student where id = 1;     -- 查看满足id为1的学生信息
    select id,number from my_student where id = 1;  -- 查看满足id为1的学生信息
    select id,number,sex,name from my_student where id = 1; -- 查看满足id为1的学生信息
    
    • 更新数据
    update my_student set sex  = 'female' where name = 'jim'; --将 name 为 jim 中的 sex 改为 female
    
    • 删除数据
      delete from my_student where sex = 'male'; --删除 sex 为 male 的数据
    
    • 插入数据(中文)
    insert into my_student values(5,'itcast0005','张越','男');
    --需进行一下设置
    
    -- 修改服务器认为的客户端数据的字符集为GBK
    set character_set_client = gbk;
    
    -- 修改服务器给定数据的字符集为GBK
    set character_set_results = gbk;
    
    -- 快捷设置字符集
    set names gbk;
    
    • 创建整型表
    create table my_int(
    int_1 tinyint,
    int_2 smallint,
    int_3 int,
    int_4 bigint
    )charset utf8;
    
    -- 插入数据
    insert into my_int values(100,100,100,100);  -- 有效数据
    
    insert into my_int values('a','b','199','f');    -- 无效数据: 类型限定
    
    insert into my_int values(255,10000,100000,1000000);    -- 错误: 超出范围
    
    -- 给表增加一个无符号类型
    alter table my_int add int_5 tinyint unsigned; -- 无符号类型
    
    -- 插入数据
    insert into my_int values(127,1000,10000,1000000,255);
    
    alter table my_int add int_6 tinyint(1) unsigned;-- 指定显示宽度为1;
    insert into my_int values(127,0,0,0,255,255);
    
    alter table my_int add int_7 tinyint(2) zerofill; -- 显示宽度为2,0填充
    insert into my_int values(1,1,1,1,1,1,1);
    insert into my_int values(100,100,100,100,100,100,100);
    
    • 创建浮点数表
    create table my_float(
    f1 float,
    f2 float(10,2), -- 10位在精度范围之外
    f3 float(6,2)   -- 6位在精度范围之内
    )charset utf8;
    
    -- 插入数据
    insert into my_float values(1000.10,1000.10,1000.10); -- 符合条件
    insert into my_float values(1234567890,12345678.90,1234.56); -- 符合条件
    insert into my_float values(3e38,3.01e7,1234.56);
    insert into my_float values(9999999999,99999999.99,9999.99); -- 最大值
    
    -- 超出长度插入数据
    insert into my_float values(123456,1234.123456768,123.9876543); -- 小数部分OK
    insert into my_float values(123456,1234.12,12345.56);   -- 整数部分超出
    
    • 创建定点数表
    create table my_decimal(
    f1 float(10,2),
    d1 decimal(10,2)
    )charset utf8;
    
    -- 插入数据
    insert into my_decimal values(12345678.90,12345678.90); -- 有效数据
    insert into my_decimal values(1234.123456,1234.1234356); -- 小数部分超出:ok
    
    insert into my_decimal values(99999999.99,99999999.99); -- 没有问题
    insert into my_decimal values(99999999.99,99999999.999); -- 进位超出范围
    
    • 创建时间日期表
    create table my_date(
    d1 datetime,
    d2 date,
    d3 time,
    d4 timestamp,
    d5 year
    )charset utf8;
    
    
    -- 插入数据
    insert into my_date values('2015-9-28 11:50:36','2015-9-28','11:50:54','2015-9-28 11:51:08',2015);
    
    -- 时间使用负数
    insert into my_date values('2015-9-28 11:50:36','2015-9-28','-11:50:54','2015-9-28 11:51:08',2015);
    insert into my_date values('2015-9-28 11:50:36','2015-9-28','-211:50:54','2015-9-28 11:51:08',2015);
    insert into my_date values('2015-9-28 11:50:36','2015-9-28','-2 11:50:54','2015-9-28 11:51:08',2015); -- -2过去2天:48
    
    -- year可以使用2位或者4位
    insert into my_date values('2015-9-28 11:50:36','2015-9-28','11:50:54','2015-9-28 11:51:08',69);
    insert into my_date values('2015-9-28 11:50:36','2015-9-28','11:50:54','2015-9-28 11:51:08',70);
    
    -- timestamp: 修改记录
    update my_date set d1 = '2015-9-28 11:55:45' where d5 = 2069;
    
    • 创建枚举表
    create table my_enum(
    gender enum('男','女','保密')
    )charset utf8;
    
    -- 插入数据
    insert into my_enum values('男'),('保密'); -- 有效数据
    
    -- 错误数据
    insert into my_enum values('male'); -- 错误: 没有该元素
    
    -- 将字段结果取出来进行+0运算
    select gender + 0, gender from my_enum;
    
    -- 数值插入枚举元素
    insert into my_enum values(1),(2);
    
    • 创建集合表
    create table my_set(
    hobby set('篮球','足球','乒乓球','羽毛球','排球','台球','网球','棒球')
    --         足球                     台球    网球
    -- 集合中: 每一个元素都是对应一个二进制位,被选中为1,没有则为0: 最后反过来
    --          0      1       0         0      0       1       1     0
    -- 反过来    01100010 = 98
    
    )charset utf8;
    
    -- 插入数据
    insert into my_set values('足球,台球,网球');
    insert into my_set values(3); 
    
    端口号查询指令:show global variables like 'port'
    image.png

    整理不容易,觉得有用的小伙伴点个小红心就行😄,么么哒。

    相关文章

      网友评论

          本文标题:Mysql命令大全

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