zoukankan      html  css  js  c++  java
  • mysql命令大全一

    mysql -u root -p;
    create database qa;
    show databases;
    use qa;

    create table results(
    id int not null auto_increment,
    primary key (id));
    )

    alter table results add column test_suite varchar(255);
    alter table results add column test_name varchar(255);
    alter table results add column test_status varchar(255);

    mysql> create user 'tom'@'%' identified by '111111';
    Query OK, 0 rows affected (0.02 sec)

    mysql> grant all privileges on *.* to 'tom'@'%';
    Query OK, 0 rows affected (0.02 sec)

    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    grant select,insert,update,deleteon *.* to test2@localhost identified by "abc";

    mysql -h127.0.0.1 -P3306 -uroot -p

    查看数据库字符集
    show variables like 'character_set_database';
    设置数据库字符集

    create database test2 character set utf8;
    create table my_test(
    id int,
    name varchar(20)
    );

    show databases;--查看所有数据库
    退出命令exit, quit, q
    > create database mydatabase charset utf8;
    -- 查看数据库 有空格
    show databases like 'my%';
    %: 表示匹配多个
    _: 表示匹配单个
    show databases like ‘mydatabase\_%’
    alter database mydatabase charset GBK;
    drop database mydatabase;
    创建学生表
    create database mydb;
    create table if not exists mydb.student(
    Number varchar(10),
    Name varchar(10),
    Gender varchar(10),
    Age int
    )
    charset UTF8;

    create table class(

    name varchar(10),
    home varchar(10)

    )
    CHARSET=utf8;

    show tables like 'class%';
    describe class;
    desc class;
    show columns from student;
    rename table student to my_student;
    alter table my_student charset GBK;
    alter table my_student add column ID int first;
    alter table my_student modify Number char(10) after Name;
    alter table my_student drop Age;

    重命名: rename

    修改表:alter

    新增字段: add

    重命名字段:modify

    删除字段:drop

    删除数据表操作
    drop table class;

    insert into my_student values('java01001','Anthony','male',23),('java01002','Lily','female',22);

    insert into my_student(ID,Name,Gender,Age) value('java01003','Tom','male',23),('java01004','Lucy','female',22);

    insert into my_student(Name,Gender,ID) value('张三','男','jave01005');

    create table results(
    id int not null auto_increment,
    primary key(id),
    test_suit varchar(255),
    test_name varchar(255),
    test_status varchar(10)

    )
    charset utf8;

    update my_student set age=18 where name='Lucy';

    delete from my_student where dender = 'male'

    show character set;

    show variables like 'character_set%';

    use mydb;
    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);--ok
    insert into my_int values('a','b','199',100);--no
    insert into my_int values(255,10000,100000,100000000);


    alter table my_int add int_5 tinyint unsigned;
    insert into my_int values(10,10000,100000,100000000,255);

    create table my_float(
    f1 float,
    f2 float(10,2),
    f3 float(6,2)
    )charset utf8;

    show tables;

    insert into my_float values(1000.12,1000.10,1000.10);
    insert into my_float values(3e38,3.23e7,1234.56);
    ERROR 1136 (21S01): Column count doesn't match value count at row 1

    insert into my_float values(9999999999,99999999.99,9999.99);
    --定点型
    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.123456);
    insert into my_decimal values(9999999.99,99999999.99);

    create table my_date(
    d1 datetime,
    d2 date,
    d3 time,
    d4 timestamp,
    d5 year
    )charset utf8;

    insert into my_date values('2017-12-24 21:30:23','2017-12-24','21:30:23','2017-12-24','2017');
    insert into my_date values('2017-12-24 21:30:23','2017-12-24','-21:30:23','2017-12-24','2017');

    create table my_enum(
    gender enum('男','女','保密')
    )charset utf8;

    insert into my_enum values('保密');
    insert into my_enum values('男');
    insert into my_enum value (1),(2);

    create table my_set(
    ball set ('足球','篮球','羽毛球','排球','乒乓球')

    )charset utf8;

    insert into my_set values('足球,羽毛球');
    insert into my_set values(3);
    select ball+0 from my_set;

    create table my_class(
    name varchar(20) not null,
    class varchar(20)
    )charset utf8;

    insert into my_class values(null,'302');-- 报错
    insert into my_class values('java01','301');

    content
    -- 创建教师表

    create table my_teacher(
    name varchar(20) not null comment '名称',
    money decimal(10,2) not null comment '工资'
    )charset utf8;

    show create table my_teacher;

    create table my_default(
    name varchar(20) not null,
    age tinyint unsigned default 0,
    gender enum('男','女','保密') default '男'
    )charset utf8;


    insert into my_default (name) values('张三');
    insert into my_default values ('李四',default,default);

    -- 主键
    create table my_prim1(
    name varchar(20) not null comment '姓名',
    number char(10) primary key not null comment '学号'
    )charset utf8;

    create table my_prim2(
    number char(8) not null comment '学号',
    course char(10) comment '课程代码',
    score tinyint unsigned default 60 comment '成绩',
    primary key (number,course)
    )charset utf8;

    create table my_prim3(
    course char(10) not null comment '课程编号',
    name varchar(10) not null comment '课程名称'
    )charset utf8;

    alter table my_prim3 add primary key (course);

    insert into my_prim3 values('java01','Java');
    insert into my_prim3 values('java01','Javaweb');-- 重复

    alter table my_prim3 drop primary key;


    create table my_auto(
    id int auto_increment comment '自动增长',
    name varchar(10) not null

    )charset utf8;-- 报错

    create table my_auto(
    id varchar(10) primary key auto_increment comment '自动增长',
    name varchar(10) not null

    )charset utf8; -- int
    create table my_auto(
    id int primary key auto_increment comment '自动增长',
    name varchar(10) not null auto_increment

    )charset utf8;--唯一

    create table my_auto(
    id int primary key auto_increment comment '自动增长',
    name varchar(10) not null

    )charset utf8;

    insert into my_auto(name) values('Tom');
    insert into my_auto values(null,'Anthony');
    insert into my_auto values (default ,'jim');

    show create table my_auto;
    alter table my_auto auto_increment=10;

    insert into my_auto values(default,'Lucy');
    alter table my_auto modify id int;

    create table my_unique1(
    number char(10) unique comment '学号,唯一,允许为空',
    name varchar(20) not null
    )charset utf8;

    set names gbk;
    insert into my_unique1 values(null,'Antony'),(18001,'张三'),(null,'Tom');
    insert into my_unique1 values('18001','Bobo');
    show create table my_unique1;
    alter table my_unique1 drop index number;
    CREATE TABLE `my_class1` (
    `name` varchar(20) NOT NULL,
    `class` varchar(20) DEFAULT NULL,
    PRIMARY KEY (`name`)
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;
    insert into my_class1 values('Java01','A101'),('Java02','A102');
    insert into my_class1 values('Java02','B102');-- 冲突
    insert into my_class1 values('Java02','B102') on duplicate key update class='B102';
    replace into my_class1 values('Java01','A105');


    create table my_unique2(
    number char(10) not null comment '学号',
    name varchar(20) not null,
    unique key(number)
    )charset utf8;

    show create table my_unique2;

    create table my_unique3(
    id int primary key auto_increment,
    number char(10) not null,
    name varchar(20) not null
    )charset utf8;

    alter table my_unique3 add unique key(number);


    create table my_name(
    name varchar(20)
    )charset utf8;

    insert into my_name values ('A'),('B'),('C'),('D'),('E');
    update my_name set name = 'Tom' limit 3;
    update my_name set name = 'Jim' where name = 'Tom' limit 3;
    insert into my_name values ('Tom'),('Anthony'),('Tom'),('Tom'),('Bobo');
    delete from my_name where name = 'Tom' limit 5;


    create table student(
    id int(10) not null auto_increment primary key,
    number char(10),
    name varchar(20),
    gender varchar(10)
    )charset utf8;

    insert into student values
    (default ,'1801','Tom','male'),
    (default,'1802','Anthony','male'),
    (default,'1803','Lucy','female'),
    (default,'1804','Lily','female');

    show create table student;
    delete from student;
    show create table student;

    truncate student;

    -- 查询
    select * from my_student;
    insert into my_student values('java01002','Lily','female','21');-- 插入重复数据
    select distinct * from my_student;
    select id, name as 姓名,gender as 性别,age as 年龄 from my_student;
    select id, name 姓名,gender 性别,age 年龄 from my_student;


    1、登录数据库存
    格式: mysql -h主机地址 -u用户名 -p用户密码–P端口 –D数据库–e “SQL 内容”

    >mysql -uroot -p 数据库名称

    mysql -uroot -p mydb

    2 、修改密码

    格式:mysqladmin -u用户名 -p旧密码 password 新密码

    Mysqladmin -uroot -password ab12

    注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

    例2:再将root的密码改为djg345。

    mysqladmin-uroot -pab12 password djg345

    shell>mysql -u root -p

    mysql> update user setpassword=password(”xueok654123″) where user=’root’;

    Mysqladmin -uroot -p 123456 password 111111
    Mysqladmin -uroot -p123456 password "111111";
    在mysqld下面添加skip-grant-tables
    use mysql;
    update user set password=password("111111") where user='root';
    flush privileges;

    3.数据库备份
    -- 备份数据库
    D:mysqlmysql-5.6.24-win32in>mysqldump -u root -p mydb > mydb_bakup_20171221.sql
    --创建数据库
    D:mysqlmysql-5.6.24-win32in>mysqladmin -h localhost -u root -p create mydbbakup
    --恢复数据库
    mysql> use mydbbakup;
    Database changed
    方法一:mysql> source mydb_bakup_20171221.sql;
    create database mall;
    mysql> use mall;
    Database changed
    mysql> grant all privileges on *.* to 'root'@'%';
    方法二:D:mysqlmysql-5.6.24-win32in>mysql -u root -p mall < mydb_bakup_20171221.sql
    导入sql
    use test
    mysql> source D:/mysql/mysql-5.6.24-win32/bin/mydb_bakup_20171221.sql;

    10、删除授权:

    mysql> revoke all privilegeson *.* from root@”%”;

    mysql> delete from user whereuser=”root” and host=”%”;

    mysql> flush privileges;
    11、显示当前mysql版本和当前日期

    select version(),current_date;

    查询时间:select now();

    查询当前用户:select user();

    查询数据库版本:select version();

    查询当前使用的数据库:select database();
    18、删除表

    mysql>drop TABLE MYTABLE;


    19、 清空表

    mysql>delete from MYTABLE;


    20、添加表字段

    alter tabletable1 add transactor varchar(10) not Null;

    alter tabletable1 add id int unsigned not Null auto_increment primary key


    21、修改某个表的字段类型及指定为空或非空

    >alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];
    >alter table 表名称 modify 字段名称 字段类型 [是否允许非空];

    >alter table 表名称 modify 字段名称 字段类型 [是否允许非空];


    22、如果要删除某一字段,可用命令:

    ALTER TABLEmytable DROP 字段名;


    23、添加唯一键

    ALTER TABLE`test2` ADD UNIQUE ( `userid`)


    24、修改主键

    ALTER TABLE`test2` DROP PRIMARY KEY ,ADD PRIMARY KEY ( `id` )

    alter tableversion_template drop primary key ,add primary key version,role,type);


    25、增加索引

    ALTER TABLE`test2` ADD INDEX ( `id` )

    alter tabletable1 add index ind_id (id);

    create indexind_id on table1 (id);

    create uniqueindex ind_id on table1 (id);//建立唯一性索引


    26、删除索引

    drop indexidx_id on table1;

    alter tabletable1 drop index ind_id;


    27、重命名表:

    alter table t1 rename t2;


    28、增加一个字段:

    alter tabletabelName add column fieldName dateType;


    29、增加多个字段

    alter tabletabelName add column fieldName1 dateType,add columns fieldName2 dateType;

    多行命令输入:注意不能将单词断开;当插入或更改数据时,不能将字段的字符串展开到多行里,否则硬回车将被储存到数据中;

    增加一个管理员帐户:grant all on *.* to user@localhost identified by"password";

    每条语句输入完毕后要在末尾填加分号';',或者填加'g'也可以;


    30、创建临时表:

    create temporarytable zengchao(name varchar(10));


    31、创建表是先判断表是否存在

    create table ifnot exists students(……);

    create table s_position(

    id int not null auto_increment,
    name varchar(20) not null default '经理',
    description varchar(100),
    primary key PK_position(id)

    )charset='utf8';

    ERROR 1067 (42000): Invalid default value for 'name'

    后来在网上找到了解决方法:

    SET NAMES GBK;

    并且CREATE TABLE的末尾加上charset='utf8';像下面这样

    CREATE TABLE user(

    id int unsigned auto_increment key,

    username varchar(20) not null unique,

    password char(32) not null,

    sex enum('保密','女','男') not null default '保密',

    face varchar(50) not null,

    regTime int unsigned not null

    ) charset='utf8';

    create table demparment(
    id int not null auto_increment,
    name varchar(20) not null default '系统部',
    description varchar(100),
    primary key PK_deparment(id)
    )charset='utf8';


    create table depart_pos(
    department_id int not null,
    position_id int not null,
    primary key PK_pepart_pos(department_id,position_id)
    );
    create table staffer(
    id int not null auto_increment primary key,
    name varchar(20) not null default '无名氏',
    department_id int not null,
    position_id int not null,
    unique(department_id,position_id)
    )charset='utf8';

    32、从已经有的表中复制表的结构

    create tabletable2 select * from table1 where 1<>1;

    create table my_student_con select * from my_student where 1<>1;
    33、复制表

    create tabletable2 select * from table1;
    create table my_student_bak select * from my_student;

    34、对表重新命名

    alter table table1 rename astable2;


    35、修改列的类型

    alter table table1 modify id intunsigned;//修改列id的类型为int unsigned

    alter table table1 change id sidint unsigned;//修改列id的名字为sid,而且把属性修改为int unsigned


    36、联合字符或者多个列(将列id与":"和列name和"="连接)

    select concat(id,':',name,'=')from students;


    37、limit(选出10到20条)<第一个记录集的编号是0>

    select * from students order byid limit 9,10;

    select * from my_student order by ID limit 2,4;

    38、MySQL会使用索引的操作符号

    <,<=,>=,>,=,between,in,不带%或者_开头的like


    39 、存储过程

    1)查看存储过程

    select name from mysql.proc where db=’数据库名’;

    或者

    select routine_name frominformation_schema.routines where routine_schema='数据库名';

    或者

    show procedure status where db='数据库名';


    40、MySQL存储过程的修改

    ALTER PROCEDURE

    更改用CREATEPROCEDURE 建立的预先指定的存储过程,其不会影响相关存储过程或存储功能。


    41、MySQL存储过程的删除

    删除一个存储过程比较简单,和删除表一样:

    DROP PROCEDURE

    从MySQL的表格中删除一个或多个存储过程。
    mysql> use test;
    Database changed
    mysql> show procedure status where Db='test';
    Empty set (0.04 sec)

    mysql> create procedure hi() select 'hello';
    Query OK, 0 rows affected (0.03 sec)

    mysql> call hi();
    +-------+
    | hello |
    +-------+
    | hello |
    +-------+
    1 row in set (0.00 sec)

    Query OK, 0 rows affected (0.01 sec)


    在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看:
    mysqldump

    最常用的:
    mysqldump -uroot -pmysql databasefoo table1 table2 > foo.sql

    这样就可以将数据库databasefoo的表table1,table2以sql形式导入foo.sql中,其中-uroot参数表示访问数据库的用户名是root,如果有密码还需要加上-p参数

    C:Usersjack> mysqldump -uroot -pmysql sva_rec date_drv > e:date_drv.sql

    mysql的数据导入也是相当便捷的,如:
    mysql -uroot databasefoo < foo.sql

    这样就可以将foo.sql的数据全部导入数据库databasefoo

    1.导出整个数据库

      mysqldump -u用户名 -p密码 数据库名 > 导出的文件名
      C:Usersjack> mysqldump -uroot -pmysql sva_rec > e:sva_rec.sql

      2.导出一个表,包括表结构和数据

      mysqldump -u用户名 -p 密码 数据库名 表名> 导出的文件名
      C:Usersjack> mysqldump -uroot -pmysql sva_rec date_rec_drv> e:date_rec_drv.sql

      3.导出一个数据库结构
      C:Usersjack> mysqldump -uroot -pmysql -d sva_rec > e:sva_rec.sql

    4.导出一个表,只有表结构

      mysqldump -u用户名 -p 密码 -d数据库名 表名> 导出的文件名
      C:Usersjack> mysqldump -uroot -pmysql -d sva_rec date_rec_drv> e:date_rec_drv.sql


      5.导入数据库

      常用source 命令
      进入mysql数据库控制台,
      如mysql -u root -p
      mysql>use 数据库
      然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
      mysql>source d:wcnc_db.sql
    导出整个数据库
    C:Usersceshi>mysqldump -uroot -p mydb > d:111q.sql
    导出一个表,包括表结构和数据
    C:Usersceshi>mysqldump -uroot -p123456 mydb my_student > d:111s.sql
    导出一个数据库结构
    C:Usersceshi>mysqldump -uroot -p123456 -d mydb > d:111dbcon.sql
    导出一个表,只有表结构
    C:Usersceshi>mysqldump -uroot -p123456 -d mydb my_student > d:111 able.sql
    导入数据
    mysql> source d:111 able.sql

  • 相关阅读:
    【bzoj3211】花神游历各国
    四维偏序(K-D-Tree+rebuild)
    【bzoj3295】动态逆序对
    BZOJ3444: 最后的晚餐
    BZOJ3091: 城市旅行
    BestCoder Round #72
    BZOJ2733: [HNOI2012]永无乡
    wc2016总结
    BZOJ4381: [POI2015]Odwiedziny
    BZOJ4196: [Noi2015]软件包管理器
  • 原文地址:https://www.cnblogs.com/51testing/p/8080254.html
Copyright © 2011-2022 走看看