MySql教程

MySQL学习 DAY1

本文主要是介绍MySQL学习 DAY1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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学习总结就到这里了,其余的总结等后面学习之后在进行更新,还希望大家给小编一个充满爱的

这篇关于MySQL学习 DAY1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!