MYSQL学习 DAY 1
来自young 今天也要认真学习,每天都会记录今天学习的知识以及碰到的难点!!好好读书!加油加油!
一、数据库相关概念
1.DB:数据库,数据存储的仓库;保存一系列有组织的数据。
2.DBS:数据库系统。
3.DBMS:数据库管理系统。数据库是通过DBMS创建和操作的容器;常见的数据库有:mysql、SQL server、Oracle等。
4.DBA:数据库管理员。
5.SQL:结构化查询语言,专门用来与数据库建立联系。
二、数据库存储数据的特点
1.将数据放在表中,然后将表存放到数据库之中。
2.一个数据库中可以有多个表,每个表都有一个名字,用来标识自己,表名具有唯一性。
3.表具有一些特性,这些特性定义了数据在表中如何存储,类似于Java中“类”的设计。
4.表由列组成,我们也称为字段,所有表都是由一个或多个列组成的,每一列类似于Java中的“属性”。
5.表中的数据是按行存储的,每一行类似于Java中的“对象”。
三、mysql中常见的命令
1.显示当前数据库管理系统中存在的数据库
show databeses; //这里的 ;按要求来是必须添加的,在命令行中执行必须要这个才可以结束,在软件中没有也可以运行
2.使用某个数据库
use + 你想要使用的数据库的名字 ;
3.显示某个库中的表
show tables; //此时需要保证你在你要查询的表的数据库中
4.显示某个表中的 全部/某个 数据
select * from + 你的表的名字; //显示表中的所有的数据
select +(表中某个变量名字) from +表的名字; //显示表中的某个变量的全部数据,想要显示多个可以让变量使用,相连接
5.在一个数据库中想要调用另外一个数据库中的表
//除了上面所提到的可以使用 use+数据库 --> show tables 的方法之外,还可以使用下面的方法
show tables from +数据库名字;
6.在数据库中创建表
create table `表名`(
`变量名1` 变量类型1,
`变量名2` 变量类型2,
...);
/*在这里需要注意以下几个点:
1.注意是create 而不是 creat
2.表名、变量名都需要使用 反引号引起来(在键盘的最上面,数字1的左边)
*/
7.显示自己创建的表的结构
desc+表名; //保证数据库位置正确
8.在表中插入数据
insert into 表名 value(在这里添加相关数据,记住要与表的结构相匹配); //在这里要是不记得自己的表的结构,可以使用desc+表名进行查询
9.删除表中的数据
delete from 表名 where 定位(可以选择你创建的表的中具有的唯一的标志,比如id=1);
10.修改表中的数据
update 表名 set +你想要修改的数据(name="lisi") where 定位;
11.查看当前的数据库的版本
select version(); //在客户端内查看使用这个语句
在非客户端中查看(在dos命令界面查看) mysql –version(也可以使用简写:mysql --V);
12.删除数据库
drop databases if exits 数据库名字;
13.添加别名
select 查询列表 as 别名 from 表名;
14.创建新的数据库
create database 库名;
四、MySQL的语法规范
1.不区分大小写,建议关键字大写,表名、列名小写
2每条命令用分号结尾(最好使用)
3.每条命令根据需要进行缩进和换行(建议关键字单独在一行)
4.注释 单行注释:#注释文字.
单行注释:-- 注释文字(中间必须有个空格)
多行注释:/* */
五.条件查询
/* 语法:select 查询列表 from 表名 where 筛选条件;*/
1.按条件表达式筛选(条件表达式:> < = !=(一般使用<>表示不等于) <=>(安全等于) <= >=)
#案例、查询表中工资大于500的信息
select * from 表名 where 筛选条件(salary>500);
<=> 安全等于----可读性较差
#案例:查询奖金为null的员工信息
select * from employees(表名) where commission_pct<=>null;
2.按逻辑表达式筛选(逻辑表达式:and(&&)、or(||)、not(!))
#案例:查询工资在10000到20000的员工的信息
select * from employees(表名) where salary>=10000 and salary<=20000;
3.模糊查询(like、between and、in、is null)
1>.like 一般和通配符使用 常见通配符:% 任意多个字符 _ 单个字符
#案例1:查询员工名字中含有字母a的员工信息
select * from employees where last_name like "%a%";
#案例2:查询员工名字中第二个字母是s的员工信息
select * from employees where last_name like "_a%";
#案例3:查询员工名字中含有符号_的员工信息
select * from employees where last_name like "%\_%"; //这里要查询含有这个字符的就需要添加转义字符\
2>.between and (between and之间的数据不可以交换位置;包含临界值)
#案例:查询员工工资大于1000小于20000的员工信息
select * from employees(表名) where salary between 1000 and 20000;
3>.in(in列表的值类型必须统一或者兼容)
#案例:查询工种编号是A B C的员工信息
select * from employees(表名) where job_id in(A,B,C);
4>.is null(=、!=不可以判断null值;is null、is not null可以用来判断null值)
#案例:查询奖金不是null的员工信息
select * from employees where commission_pct is not null;
六、排序查询
/* 语法:select 查询列表 from 表名 where 筛选条件 order by 如何排序(asc 升序 / desc 降序) */
直接上案例:
#案例:查询工资在1000到5000之间的员工信息,并按员工id进行升序排序
select * from employees(表名) where salary between 1000 and 5000 order by job_id asc;
七、常见函数
1. 字符函数
/* 格式:select 你要使用的函数名() from 表名; */
1>.length ---- 获取参数的字节数
#案例
select length("张三丰"); //获取张三丰所占的字节数
//一般来说,一个汉字占三个字节,但是还要与他的字节编码有关;如果是GBK,那么一个汉字占用两个字节,如果是utf-8,那么一个汉字占用两个字节
2>.concat ---连接字符成为字符串
#案例:连接employees中last_name和first_name
select concat(last_name,'_',first_name )from employees;
3>.upper 、lower --- 将字符变为大写、小写
#案例:将employees表中的last_name和first_name分别变为大写和小写,并连接
select concat(upper(last_name),'_',lower(first_name)) from employees;
大家可以回想以下,符号“_"在哪里的时候需要进行转义之后才可以使用?? 看自己学的牢固不 嘿嘿嘿
4>substr/substring ---索引从哪里开始截取字符串
//分为两种情况,一个是只有一个参数,这里的参数表示的是从哪儿开始截取,一直截取到最后;有两个参数表示从哪里开始截取吗,截取多长
#案例:
select substr("李莫愁爱上了卢展颜",a); //表示从位置a开始截取
select substr("李莫愁爱上了卢展颜",a,b); //表示从位置a开始截取,截取长度为b的字符串
#案例:将员工姓名中的首字符大写,其他小写,随后使用"_" 进行连接
select concat(upper(last_name,1,1),lower(last_name,2),"_",lower(first_name)) from employees;
5>.instr ---返回你查找的字串第一次在主字符串中出现的位置,找不到就返回0
select instr('吴莫愁真的很吴莫愁','莫愁');
//此时输出的数据为2
6>.trim ---去除前后的空额或者其它字符串,去除其它字符串的时候需要在中间加上 ’需要去除的字符串’ from '字符串'
#案例:去除空格
select trim(' 张翠山') as out_put;
#案例:去除某个字符串
select trim('a' from 'aaaa张翠山aaaa');
//这里需要注意的是,如果在张翠山中间含有字符a是无法去除的,因为trim只去除字符串前后的字符,中间的无法去除
7>.lpad / rpad 用指定字符实现左 / 右填充指定长度,当字符串长度大于指定长度的手会进行截断
select lpad('哈哈',10,'_') as out_put; //这里是使用_进行填充,而且要注意这里汉字所占的字符大小为多少
8>.replace --替换
select replace('主字符串','被替换的字符串','替换的字符串');
2. 数学函数
1>.round 四舍五入
sele
#1。
select round(16.55); //取为整数
#2.
select round(16.202,2); //后面的数字表示小数点后保留两位小数
2>.ceil 向上取整,返回大于等于该参数的最小整数
select ceil(1.50); //结果为2
3>.floor 向下取整,返回小于等于该参数的最小整数
select floor(1.20); //结果为1
4>.truncate 小数点后保留几位
select truncate(1.20,1);
5>.mod ---取余(被除数为正余数就是正数,被除数是负数余数就是负数)
select mod(a,b) 相当于进行运算a-a/b*b(取整数)
3. 日期函数
1>.now ---返回当前系统日期以及时间
select now();
2>.curdate() ---返回当前系统日期,不包含时间
3>.curttime() ---返回当前时间不包含日期
好了,今天的mysql学习总结就到这里了,其余的总结等后面学习之后在进行更新,还希望大家给小编一个充满爱的