MySQL常规使用一

 

1,账户密码管理:

         1,安装后设置新密码:

                   Mysqladmin –u root password 123456;

         2,修改密码:

                   不进入mysql:mysqladmin –u root –p 旧密码 password 新密码;

                                     或: mysqladmin –u root –p password 新密码   回车后输入旧密码;

                   进入MySQL后:set password for root@localhost=password(‘666666’);

         3,忘记密码找回:

                   (1),在MySQL安装根目录下打开my.ini,在末尾添加一行命令:

                            skip-grant-tables

                   (2),重新启动mysql服务:windows:右击计算机-管理-服务中找mysql

                                     Linux中service mysqld restart

                   (3),命令行输入:mysql即可直接进入mysql,然后修改密码:

                                     Use mysql;

                                     Update user set password=password(‘新密码’) where user=’root’;

                                     Exit;

                   (4),删掉mysql目录下my.ini新天的那句命令保存,然后重启mysql服务,重新进命令行或工具用心密码链接mysql登录即可。

 

2,常用建表:

         常用数据类型:整数int,字符varchar(n),日期:datetime

         表约束:主键primary key;自增长auto_increment ;不为空not null;唯一unique;

 Create table user(

         Id int auto_increment primary key,

         Name not null unique,

         Age int,

         Birthday datetime

)ENGINE=INNODB DEFAULT CHARSET=utf8;

Insert into user(name,age,birthday) values(‘libai’,22,’1456-6-5 11:22:33’);

 

3,删除表:delete,drop,truncate

         Delete 删除只数据,可用where语句:delete from user where age=19;/delete from user;

                            数据id不自增长,会从删除之处累计。

         Drop 删除表结构及其数据,包括索引,约束和触发器

         Truncate 删除表数据,不能使用where子句,相当于Navicat表截断,id重新增长。

 

4,SQL语句:structured Query Language结构化查询语句,存取,查询更新管理关系表数据库的设计语言。

         (1),select 列1,列2 from 表名;

         (2),列操作:select id+2,age+2 from user;

                   Select ifnull(age,0)*2 from user; //若age存在就乘2,不存在设为0

                  列拼接:select concat(name,age)as ‘name-age’ from user;

                   列去重:select distinct age from python;

         (3),别名:as或直接跟别名在列名后

                   Select concat(name,age) as ‘name-age’ from user;

         (4)where子句限制查询数据行:

                   比较:=,!=, <, >, <=,>=,<>

                   逻辑:and,or

                   范围:in(val1,val2), between 11 and 20

                   空值判断:where name is null and age is not null

         (5)模糊查询:%表示任意多个字符

like ‘%email%’: 其中包含有email

                                     Like ‘ok%’ :ok开头

                                     Like ‘_ok%_’ :ok前有一个字符,ok 后至少有一个字符

                                     Like ‘%__%’ 至少有两个字符

         (6)分页查询:

                   Select * from user limit 0,1 :从第一条开始查只查询一条一页

                   Select * from user limit (m-1)*n,n 每页n条,查询第m页;

         (7)排序order by

                   Desc降序;asc升序默认;

                   Select * from user where age=9 order by id desc,deid asc;

         (8)聚合函数:组函数:只返回一行函数,null被忽略

                   MAX(), MIN(), SUM(), AVG(), COUNT():最大最小和平均数总和

                   Select count(id),avg(age) from suer;

         (9)分组:group by

                   Select avg(salary),min(salary),sum(salary) from deparment group by de_id;

                   分组查询只能查分组条件的字段或者组函数

         (10)分组限制:having:对分组后的临时表做条件限制查询,满足条件的临时表最终被查询出来;

                   Select max(salary) from user group by dep_id having avg(salary) > 8888;

         最小年龄大于25的部门的员工总数和部门id:

                   Select count(id),dep_id from user group by dep_id having min(age)>25;

                   Having和where的区别:

                   Having对临时表进行筛选,where先执行对总表筛选;

                   where 可以使用索引,having不能使用索引,只能在临时结果集操作

           where后面不能使用聚集函数,having是专门使用聚集函数的

          (11)各语句执行顺序:

                   From > where>group by>having>select>order by

         (12)case子句:

                   Case

                            When 布尔表达式 then 选项1

                            When 布尔表达式 then 选项2

                            Else 默认结果

                   End

                   Select case

                            When id>1 and name like ‘%j’ then ‘is jjk’

                            When id between 2 and 11 then ‘ is 22k

                            Else ‘33k’

                   End as ‘nn k’,

                   Id,age,name from user order by nnk

 

                   (13)子查询:一个查询的结果作为另一个查询的一部分

                   一般用在where之后

                   Select id,name from t_emp where salary > (select avg(salary) from t_emp)

                   也有多行多列:

                            Select a.id,a.name from (select id,name from user) as a;

5,关键字:

         LENGTH() 获取长度

LCASE() 转为小写字符 abcd

UCASE() 转为大小字符 ABCD

TRIM()  去除头部和尾部的空格

NOW() 当前系统日期和时间 :select now();

CURDATE() 当前日期

CURTIME() 当前时间

DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s')  日期格式化

DATABASE() 当前的数据库名称

USER() 当前用户名

VERSION() 当前服务器版本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值