• 数据库命令大全


    八、数据的操作

    show databases;//显示所有数据库

    use testdb//使用testdb数据库

    show tables;//显示所有表

    create table users(id int auto_increment,username varchar(20),address varchar(200),age int,key(id));//创建表,id自增长

    insert into users values(1,'petter','beijing');//表中插入数据

    另外insert可以插入多行,多个括号跟在后面就行。

    九、表单数据记录查询

    select * from users;//查看users表中全部数据

    select * from users limit 2;//查看前两行数据

    select * from users limit 1,2;//查看从第一行之后的两行数据

    select id,username from users;//查看表的id,username两列

    desc users;//查看表的属性

    select address,count(address) from users group by address;//通过统计address来进行分组

    clip_image001

    select host,User from mysql.user;//显示数据库的使用者

    select address,count(address) from users group by address having count(address)>1;//只把count(address)大于一的显示出来

    select * from users order by age;//按照age进行排序

    select * from users order by age asc;//按照age升序排列

    select * from users order by age desc;//按照age降序排列

    create table users_new like users;//根据users的属性新建users_new但不复制数据

    insert into users_new select * from users;//把users的全部数据插入users_new

    drop table users_new;//删除表

    update users set age=28,address='xian' where id=4;//修改id为4的age为28,address为xian

    delete from users where id=4;//删除id为4的行

    source C:UsersyckjDownloadscensus-income.sql//将本地文件导入

    select distinct(address) from users;//查看所有的address的种类

    select 1+1;//select可以实现四则运算、求余

    select concat('hello','world');//连接两个字符串

    select * from users where age>29;//条件查询

    select * from users where (id>2 and age>29) or address='shanghai';//条件查询

    select * from users where age between 30 and 32;//between条件查询

    select * from users where age in (32,29);//in条件选择

    select * from users where age not in (32,29);//not in 条件选择

    show variables like '%max%';//把包含max的变量都会显示出来

    show variables like '%max';//把以max结尾的变量显示出来

    show variables like 'max%';//把以max开头的变量显示出来

    select * from users where address like 'be%';//把users中address以be开头的显示行找出来;

    select count(id) from users;//统计id的个数

    select count(*) from users; //把表中所有的记录统计出来

    select avg(age) from users;//计算age的平均值

    select sum(age) from users;//计算所有age的和

    select max(age) from users;//age的最大值

    select min(age) from users;//age的最小值

    select age,count(1) from users group by age;//根据age分组并统计数目

    select age,id,count(1) from users group by age,id;// 根据age和id分组并统计数目;

    select age,id,group_concat(username) from users group by age,id;//显示按照age,id分组之后的username;

    select age,id,group_concat(username) as uname from users group by age,id having id>1;//把group_concat(username)重命名为uname,并且用having id>1过滤id为1的行;

    十、多表数据记录查询

    select * from users2 union select * from users;//合并查询两个表的内容

    select * from users where (address,age)=(select address,age from users where username='lixin');//查询和lixin地址,age一样的user;

    select * from users where age in (29,30);//查询age是29和30的

    select * from users where age<any(select age from users where address="shanghai");//>any查询比any中最小的大的数据记录,<any表示查询比any中最大的要小的记录。

    select * from users where age<all(select age from users where address="shanghai");//>all查询比all中最大的大的数据记录,<all表示查询比all中最小的要小的记录。

    delete from users where id=4;//删除表中id=4的数据;

    select bin(5);//显示5的二进制

    十一、mysql运算符

    select a,a+5,a*2 from t1;//加减乘除

    select a,a/3,a div 3,a%5,mod(a,5) from t1;//除、取余

    select a,a=24,a<12,a>40,a>=24,a<=24,a!=24,a<>24,a<=>24 from t1;//数值比较

    select a,a='24','ha'<>'ha','xa'='xa','b'!='b' from t1;//字符串比较

    select a,a is null, a is not null from t1;//is null not is null

    select a,a in(1,2,23),a in(24,12,22) from t1;//in

    select s,s like 'beijing',s like 'b%g',s like 'bei____',s like '%jing' from t2;//like

    select a,a between 15 and 30,a not between 15 and 30 from t1;//between

    select 2&&2,2&&null,2 and 3,2 and 2;//与

    select 2||2,2||null,2 or 3,2 or 0;//或

    select !1,!2,!null;//非

    十二、使用字符串常用函数

    select concat('M','y','SQL'," 5.5");//字符串连接

    select concat_ws('-',curdate(),12.34);//把指定的分割符插入到字符串中

    select strcmp("abc",'ab');//字符串比较函数

    select length('sdfsgdfg');//返回字符串长度

    select upper('sdfsgdfg124');//大写字符串

    select ucase('sdfsgdfg124'); //大写字符串

    select lower('sDFGSDGgdfg124');//小写字符串

    select find_in_set('mysql','a,b,csdf,mysql,sky');//查找位置

    SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');//查找位置

    select left('2015-03-23 23:23:32',10);//从字符串左边开始截取10个字符

    select right('2015-03-23 23:23:32',10);//从字符串右边开始截取10个字符

    select mid('this is the test',4,6);//把字符串从4开始截取6位

    select substring('this is the test',4,6);//把字符串从4开始截取6位

    select trim(' sdfd sd ');//去除字符串首尾空格

    select ltrim(' sdfd sd ');//去除字符串首空格

    select rtrim(' sdfd sd ');//去除字符串尾空格

    select replace('this is test','is','is not');//将字符串is替换为is not

    select rand(1);//随机数

    select ceil(4.5);//向上取整5

    select round(123.4567,3);//四舍五入保留3位小数123.457

    select floor(4.5);//向下取整4

    select truncate(213.234435,2);//保留两位小数

    select now();//获取当前时间:日期,时分秒

    select curdate();//获取当前日期;

    select sysdate();//系统时间,日期,时分秒

    select year(now());//返回现在的年

    十三、存储过程和函数操作

    delimiter $$//以$$为结束符

    mysql> create procedure pro_test()//创建存储过程

    -> begin

    -> select address from users

    -> end

    -> $$

    call pro_test;//调用存储过程

    mysql> create function fun_test(age int(11))//创建函数

    -> return int(2,11)

    -> begin

    -> return (select id from users where users.address='beijing');

    -> end

    -> $$

    Select fun_test; //调用函数

    show procedure status G //显示所有存储过程

    show create procedure user_count G //显示user_count存储过程

    drop procedure pro_test;//删除pro_test

    十四、MYSQL事务

    begin;//开启事务

    commit;//提交事务

    rollback;//撤销

    set autocommit=1;//设置自动提交,经提交的事务不能再撤销

    读取未提交事务称为脏读

    set global transaction isolation level read uncommitted;//设置隔离级别,修改之后要重新登录

    show variables like '%tx%';//查看隔离级别

    所有事务都可以看到其他未提交事务的执行结果,读取未提交的数据称为脏读。

    update users set id=111 where id=2;//修改users id为111的数据变成id为2

    show engine innodb status G;//可以查看数据库中的锁状态

    十五、mysql安全机制

    select * from user G;//可以查看所有用户及其权限,注意这个user是数据库mysql自带的table;

    mysql -uroot -padmin -h127.0.0.1//登录mysql,用户为root,密码为admin,ip127.0.0.1

    mysql -uroot -padmin -h127.0.0.1 mysql//使用mysql数据库

    grant usage on *.* to lixin@192.168.0.100 identified by "12345";//为数据库创建一个名为lixin,指定ip为192.168.0.100, 密码为12345的新用户,这个用户只有连接数据权限,无修改权限

    show grants;//显示当前用户权限

    grant usage on *.* to lixin@192.168.0.100 identified by "abc";修改密码为abc

    flush privileges;//修改用户之后刷新权限相关表

    drop user lixin@192.168.0.100;//删除用户lixin

    十六、mysql日志管理

    在my.ini文件中加入log-bin启动日志文件,注释掉则停用,记录修改数据库的操作

    加入log文件启动通用日志文件,记录所有操作

    Mysqlbinlog lixin-bin.000001//查看lixin-bin.000001日志文件

    Flush logs;//刷新日志文件并产生新的log文件

    purge master logs to lixin-bin.30//删除小于30的所有lixin-bin文件

    purge master logs before ‘2016-05-16 22:35:50’//删除2016-05-16 22:35:50之前创建的所有日志文件

    flush logs //刷新日志文件

    set global general_log=on;//启动通用日志

    show variables like '%general_log%' G;//显示通用日志状态

    set global general_log=off;//关闭通用日志

    慢查询:让MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为“慢查询”。

  • 相关阅读:
    【noip2014】解方程
    2013南大专业课试题答案
    如何计算多边形面积
    坐标转换成点
    几何对象和空间参考
    StoryBoard(动画故事版)
    五种画刷
    SL的六种变换
    SL中MediaElement(视频播放)
    SL的四种样式
  • 原文地址:https://www.cnblogs.com/hustlx/p/5499976.html
Copyright © 2020-2023  润新知