关于编辑器:Mysql

44次阅读

共计 2941 个字符,预计需要花费 8 分钟才能阅读完成。

什么是 mysql?database 数据仓库

    DBNS 数据库管理系统   数据库通过这个创立和操作系统
    SQL 治理数据库语音

数据库管理系统。数据库是关系型
应用内核线程齐全多线程,能够轻松应用多个 CPU
每个表最多反对 64 个索引。每个索引能够蕴含 1 到 16 列或局部列。

数据库贮存数据的特点:1 须要将数据放在表里,在把表放在库里。

        2 示意有个性的
        3 必须有返回值,sql 语句

my.ni 批改配置的中央
mysql 启动:net start mysql net stop mysql
怎么看库:show databases;
怎么看表;show tables;
show tables from 库民;看库外面的表
查看版本 select version(); mysql -V
insert 表名(id,name)into value(15,”dsad”);
查看表构造:desc 表名
正文:– 空格 或者是# 多行正文 / /
数据库中这个示意这是个列名,不是关键字 格式化 F12

起别名 select 100*98 as 后果;
1 select name as 性,select age as 年龄 from 表名;
as 起别名。去重重名。如果别名有特殊符号,如 out #put, 就加上 ”out # put”.
2 去重 select distinct age as 年龄 from 表名;

不能有两个去重的货色,只能有一个列名

3 + 的作用 查问员和性连接成一个字段,并显示为姓名。
+ 号会把字符型转化成数值,胜利就做加法运算。失败就变 0. 只有一方为 null,后果就是 null。
comcat 两头有逗号隔开
拼接表名的写法:select concat(name,age) as 我多大了 from user;
留神字段中有一方为 null,和任意字段后果都是 null。有 null 和不为 null,怎么办?
select concat(name,ifnull(age,0)as 我多大了 from user;
还有一个 isnull,如果是 0 就是显示为 1
字符型必须用单引号如a.
4 含糊查问 % 多个字符 _一个字符
select name from user where name like%a;
select name from user where name like a___i_;
查名字第一个为 a,第五个为 i 的员工名
如果查问外面有下滑线的_, 进行本义
select name from user where name likea/_;
第二位数就是_这个。应用转义字符 escape 单引号

5 between and
select age from user where age between 20 and 30;
这个是蕴含 20 和 30 的,程序不能换。
6 应用 in,判断某字段的值,是否合乎某一字段。列表的值必须对立
select age from user where age in(18,22,26)
7 查问名字为空的或者没有名字的员工年龄.is not null
select age from user where name is null;
8 <> 就是等于的意思,能够代替 7 里的 is
select name from where age <> 10; 找年纪不为 10 岁的名字
9 留神如果问的是有哪些编号,记得要去重!!distinct
10 排序查问 解决 limit 就是这个在最初面
select * from user order by age desc; 从高到低排序,降序
select name,age order by age asc; 从低到高排序,升序。默认
查问 id>10 的名字,要求按年龄大小排序
SELECT name,id,age FROM USER WHERE id>10 ORDER BY age; 如果查问工信息和年薪,按年薪高下进行排序。年薪不在表格里

把年薪不存在的用别名示意
select , salary12(1+ifnull(commission,0)) as 年薪 from employess order by 年薪;
按姓名的长度进行排序
select length(name) 名字长度
,name,id ,age from user order by 名字长度。
排序的话,会遇到两个一样的数值,怎么按规定排序,不规定即是默认。间接在前面加
select length(name)as 名字长度,id,name,age from user order
by 名字长度,id; 名字长度一样按升序排序
11 数据库的一个汉字占 3 个字节,一个字母一个字节
length 就是获取字节长度为几

12 substr 截取 索引从 1 开始
select substr(‘ 阿珍视上了啊强 ’,2) 牛啊; 后果:珍视上了啊强
select substr(‘ 阿珍视上了啊强 ’,2,3
) 牛啊; 后果:珍

13 instr 呈现索引的第一次的地位,找不到就为 0;
SELECT INSTR(‘ 阿珍视上了阿强 ’,’ 爱上了 ’) ;
显示为 3
14 trim 去除空格,只能去除前后,不能去除两头
SELECT TRIM(‘aa’ FROM ‘aaa 阿森 aaaaa’) 这个只能去除 aa,不是去除 a。
15 lpad 左填充
select lpad(‘ 我牛批无敌 ’,8,’$’); 显示 我牛批无敌 $$$

16 rpad 左边填充
17 replace 替换
select replace(‘ 我无敌牛批 ’,’ 无敌牛批 ’,’ 菜鸡真菜 ’);
我菜鸡真菜
18 round 四舍五入
select round(2.369,2) 小数点后取几位,2.36
19 工夫函数 str_to_date - 这个能够变 / 区别就是会加上 0

y 肯定要大写!!第二个前面的 % 可本人去定义。

如果日期格局不是惯例的模式,要找到特定的入职工夫

20date formact 用年月日的写法
select date_formact(‘1998-4-3′,’%Y 年 %m 月 %d 日 ’)
21 case 多重设定
select 显示的货色 case 工资 when 30 then 工资 *1.1
when 40 then 1.2 end from 表名

如果是等于,能够把 salary 提取 case 的前面 就是 2000then A

22 分组函数
sum
select sum(age) from user
select avg(age) from user
select min(age) from user
select max(age) from user
select count(age) from user
SELECT SUM(age),AVG(age),MIN(age),MAX(age),COUNT(age) FROM user
能够保留小数,round
SELECT SUM(age),ROUND(AVG(age),2),MIN(age),MAX(age),COUNT(age) FROM user
sum avg 解决数值型
min max cound 能够任何类型
全副疏忽 null 值
都 distinct 搭配,
count 能够统计行数


myisam count 速度最快
innodb count* 和 count(1)差不多 个别不必 count 加字段
因为查问进去基本上是一行,所有留神不能再查问一排,对应表格的格局
最大入职工夫和最小入职工夫的相差天数

23 分组查问


合成进去写,在合下来,看原有表外面有没有

有就放在 where 那里

分组查问能够分为两类:次要依据数据,一个是数据表里曾经有的,一个是通过本人的函数发明进去的
分组前:放在 group by 后面 where 前面
以及分组后:在 having 前面

多表查问的时候,起了别名,查问的字段就不能用表名了
加查问条件用 and,奖金不为 0.

正文完
 0