mysqld install mysq157 创建
mysqld install mysq157 删除
mysqld --initialize-insecure 无密码
mysql -uroot -p 连接数据库 超级用户 -p是密码
status 状态
mysql -uroot -p -h10.10.16.207 连接数据库
select user,host,authentication_string from mysql.user 查询
show porocesslist 查看连接用户
数据库建表: create database 数据库名 charset=utf8;
create table 名字,
mysql>show databases;查看当前可以使用那些数据库
看库里有多少表:show tables;
create database 名字1;---建库
use 名字1; ---进入库
create table 名字2(id int,name char(10))---建表
desc 名字2 ---看表结构
select * from 名字2 ---看表的行的内容
选择的看表里内容:select 表头,表头,表头 from 表;
添加表头:alther table 表 add 表头 格式;
删除表头:alter table 表 drop column 表头;
desc 表---查看表里类型
******传参
insert into 表(表头,表头)values(参数,参数) ---传参
insert into ig1 value(110,'nihao') ---传参
******修改参数
update 名字 set day='99' where id=参数 ---修改表里参数
******删除
delete from student where 表头=参数;
******插入
Insert into 表名 values(列1对应值,列2对应值,....,列N对应值),(列1对应值,列2对应值,....,列N对应值),(列1对应值,列2对应值,....,列N对应值)
in (值列表) 在值列表中;not in (值列表)不在值列表中;
like ‘通配符’按照通配符进行匹配;
模糊查询
判断:
select * from 表 where 表头=参数 and 表头>值(值);
select * from stu where sname like '张_';
select *from 表 where sname link "参__";
查看多少字节:select char_length('值参');
拼接成一个字符串:select concat('参','参');
查看定位:
把‘我是中国人’字符串从第3位起截取3位字符
select substring('我是中国人',3,3);
结果是:中国人
保留小数几位:select round(15.5469,保留的几位);
查看年份里的9月出生的:学生表中哪些同学是1990年出生的?
select 表头,表头,year(年月日表头) from stu where year(年月日表头)=1990;
获取当前日期:select curdate();
获取当前时间:select curtime();
获取当前的日期和时间:select now();
返回a1和a2两个日期间隔的天数:例:select datediff('2018-6-1','2018-2-14');返回值是107;天数
条件判断函数返回值:
if(a表头判断条件,v1,v2),如果表达式a成立,返回v1值,否则,返回v2值
多重判断: 参考stu
如果考分700以上,优秀,600以上,良好,520以上,中等,否则,较差,按照这个原则列出学生表中的学生,显示姓名,考分,和评判等级
mysql> select sname,score,(case when score>=700 then '优秀' when score>=600 then '良好' when score>=520 then '中等' else '较差' end) 等级 from stu;
聚合函数
max(列名)
统计出列中所有行中的最大值,列的数据类型可以是数值、字符、日期型
min(列名)
统计出列中所有行中的最小值,列的数据类型可以是数值、字符、日期型
sum(列名)
统计出列中所有行中数值的总和,列的数据类型不能是字符型
avg(列名)
统计出列中所有行中数值的平均值,列的数据类型不能是字符型
count(列名)
统计出列中所有行的数量,列中的如果有空值不会被统计计数
聚合函数例子:
找出学生中最高的身高、最轻的体重、平均高考分数、学生的总数
mysql> select max(height),min(weight),sum(score)/count(*),avg(score),count(*),count(sno),count(cno) from stu;
count(cno) =17 因为有3个学生班号是空值,空值不会被统计计数
count(*)统计的是所有行;count(sno)=20因为sno列中无空值
查询一个或差查不同的:
查询出指定的1个或多个字段的不重复记录
查询出学生表中都有哪些班号,要求去除重复班号(参考demo的stu)
mysql> select distinct cno from stu;
表头别名:select 表头 as 中文表头 from 表;
顺序排放:select * from 表 order by 表头;
范围限制:select * from 表 limit 值;
复制表:create table 新表名 as select *from 原表名
并集:select * from 表1 union all select * from 表2;重复记录重复显示
交集:select c.cno,c.cname,c.表头 from class c join class1 c1 on c.表头=c1.表头;
c=class c1=class1;交集运算可以通过多表连接实现
追加索引:alter table 表 add index idx_(表头);
查看表是索引:show index from 表;
删除索引:alter table 表 drop index 索引名;
删除索引 缩内存: alter table 表 force;
查看用户:select user,host,authentication_string from mysql.user;