MySQL数据库的基本使用(一)

MySQL数据库的基本使用一
1.数据库
数据库的介绍:数据库就是存储和管理数据的仓库,数据按照一定的格式进行储存,用户可以对
数据库中的数据进行增加,修改,删除,查询等操作

数据库的分类
关系型数据库
非关系型数据库

关系型数据库:指采用了关系模型来组织的数据库,关系模型指的就是二维表格模型,
关系型输一局库中核心元素:
1.数据行
2.数据列
3.数据表
4.数据库(数据表的集合)
常用的关系型数据库:
Oracle
Microsoft SQL Server
MySQL
SQLite

*非关系型数据库:*非关系型数据库,又被称为NoSQL(Not Only SQL ),对NoSQL 最普遍的定义是“非关联型的”,强调 Key-Value 的方式存储数据。
常用的非关系型数据库:
MongoDB
Redis

数据库的作用:
1.持久化储存
2.读写速度极高
3.保证数据的有效性

2.关系型数据库管理系统
数据库管理系统:(RDBMS) 是为管理关系型数据库而设计的软件系统,要使用关系型数据库
就需要安装数据库管理系统,其实就是一个应用软件

关系型数据库管理系统可以分为:
1.关系型数据库服务端软件
2.关系型数据库客户端软件

关系型数据库服务端软件:主要负责管理不同的数据库,而每个数据库会有一系列数据文件
数据文件是用来储存的,数据库就是一系列数据文件的集合

关系型数据库客户端软件:负责和关系型数据库服务端软件进行通信,向服务端传输数据或者从服务端获取数据

SQL的介绍
SQL是结构化查询语言,是一种用来操作RDBMS的数据库的语言,
SQL语言主要分为:
1.DQL:数据查询语言,用于对数据进行查询, select
2.DML:数据操作语言,对数据进行增加,修改,删除 insert,update,delete
3.TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback
4.DCL:数据控制语言,进行授权与权限回收,如grant、revoke
5.DDL:数据定义语言,进行数据库、表的管理等,如create、drop

3.MySQL数据库
MySQL的特点:
1.MySQL是开源的,所以不需要支付额外费用
2.MySQL支持大型数据库,
3.MySQL使用标准的SQL数据语言形式
4.MySQL可以安装在不同的操作系统上。

查看MySQL服务
ps -aux | grep mysql

ps说明
ps 查看当前系统中的进程
-a 表示所有用户
-u 表示显示用户名
-x 表示显示所有的执行程序

查看MySQL服务状态
sudo service mysql status

停止MySQL服务
sudo service mysql stop

启动MySQL服务
sudo service mysql start

重启MySQL服务
sudo service mysql restart

MySQL配置文件介绍
cd /etc/mysql/mysql.conf.d/mysql.cnf

主要配置说明:
port表示端口号,默认是3306
bind-address表示服务器绑定的ip 127.0.0.1
datadir表示数据库保存路径: var/lib/mysql
log_error表示错误日志: /var/log/mysql/error.log

MySQL客户端链接MySQL服务端命令

mysql -uroot -p
说明:
-u: 表示MySQL服务端的用户名
-p: 表示MySQL服务端的密码
quit 或者 exit 或者 ctr + d 表示退出

4.数据类型和约束

数据类型
使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的这样可以节省存储空间
常用数据类型:
1.整数:int , bit
2.小数:decimal
3.字符串:varchar , char
4.日期时间:date , time , datetime
5.枚举类型:enum

数据类型说明:
decima 表示浮点数,如decimal(5,2)表示共存5位数,小数占位
char 表示固定长度字符串,char(3) , 如果填充‘ab’时会补一个空格为’ab’,3表示字符串
varchar 表示可变长度的字符串,varchar(3)
字符串text表示储存文本,当字符大于4000时推荐使用

数据约束
约束是指数据在数据类型限定的基础上额外增加的要求

常见的约束
主键 primary key : 物理上村春顺数,MySQL建议所有表的主键字段都叫id ,类型为int unsigned
非空 not null :此字段不允许填写空值
唯一 unique: 此字段不允许重复
默认 default :当不填写字段对应的值会使用默认值,如果填写时以填写为准
外键: foreign key: 对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,
存在则填写成功,不存在则填写失败,并抛出异常

字符串的简单使用场景

char 固定长度,小型数据, 身份证号,手机号,电话,密码
varchar :可变长度,小型数据, 姓名, 地址, 品牌, 型号
text:可变长度 字符个数大于4000 存储小型文章或新闻
longtext :可变长度,极大型文本数据,存储极大型文本数据

小结:
常用数据类型:
整数:int , bit
小数:decimal
字符串:varchar , char
日期时间:date , time , datetime

常见约束
主键约束: primary key
非空约束: not null
唯一约束: unique
默认约束:default
外键约束:roreig
数据类型和约束保证了表中数据的准确性和完整性

5.命令行客户端MySQL的使用
1.登陆和登出数据库
登陆数据库:
mysql -uroot -p
说明:
-u: 表示MySQL服务端的用户名
-p: 表示MySQL服务端的密码
quit 或者 exit 或者 ctr + d 表示退出

登陆成功后
# 显示当前时间
select now();

登出(退出)数据库
quit 或  exit  或  ctrl + d

2.数据库操作的SQL语句

1.查看所有数据库
show databases;

2.创建数据库
create database 数据库名 charset=utf8;

3.查看数据库创建信息
show create database 数据库名;

4.使用数据库/切换数据库
use 数据库名

5.查看当前使用的数据库
select database()

6.修改数据库字符集
alter database 数据库名 charset=utf8;

7.删除数据库 -慎重
drop database 数据库名

3.表结构操作的SQL语句

1.查看当前数据库所有表
show tables

2.创建表
create table 表明(
字段名称 数据类型 可选的约束条件,
column1 datatype contrai,

);

例句:
create table students(
id int unsigned primary key auto_increment not null,
name varchar(20) not null,
age tinyint unsigned default 0,
height decimal(5,2),
gender enum('男','女','人妖','保密')
);

3.修改表,添加字段
alter table 表名 add 列名 类型 约束;
例句
alter table students add birthday datetime;

4.修改表-修改字段类型
alter table 表明 modify 列名 类型 约束
alter table students modify birthday data not null;
说明:
modify: 只能修改字段类型或者约束,不能修改字段名

5.修改表-修改字段名和字段类型
alter table 表名 change 原名 新名 类型及约束
alter table students change birthday birth datetime not null;
说明:
change: 既能对字段重命名又能修改字段类型还能修改约束

6.修改表-删除字段
alter table 表名 drop 列名;
alkter table students drop birthday;

7.查看创表SQL语句
show create table 表名;
show create table students;

8.查看创库SQL语句
show create database 数据库名;
show create database mytest;

9.删除表
drop table 表明:
drop table students;

4.表数据操作的SQL语句

1.查询数据

查询所有列

select * from 表名;
例:
select * from students;

查询指定列

select 列1,列2,…from 表名;
select id,name from students;

2.添加数据

全列插入:值的顺序与表结构字段的顺序完全一一对应

insert into 表名 values (…)
insert into students values (0,‘xx’,default,default,‘男’);

部分插入 值的顺序与给出的列顺序对应

insert into 表名 (列1,…) values(值1,…)
insert into students(name,age) values(‘王小二’,15)

全列多行插入

insert into 表名 values(…)(…)…;
insert into students values(0,‘张飞’,55,1.75,‘男’),(0,‘关羽’,58.1.85,‘男’);

部分列多行插入

insert into 表名(列1,…) values(值1,…),(值1,…)…;
insert into students (name,height) values(‘刘备’,1.75),(‘关羽’,1.85);
说明:
主键列是自动增长,但是在全列插入时需要占位,通常使用空值(0或者null或者default)
在全列插入时,如果字段列有默认值可以使用 default 来占位,插入后的数据就是之前设置的默认值

3.修改数据
update 表名 set 列1=值1,列2=值2…where 条件
update students set age = 18, gender = ‘女’where id = 6;

4.删除数据

delete from 表名 where 条件
delete from students where id=5;

1. 登录数据库: mysql -uroot -p
2. 退出数据库: quit 或者 exit 或者 ctr + d
3. 创建数据库: create database 数据库名 charset=utf8;
4. 使用数据库: use 数据库名;
5. 删除数据库: drop database 数据库名;
6. 创建表: create table 表名(字段名 字段类型 约束, ...);
7. 修改表-添加字段: alter table 表名 add 字段名 字段类型 约束
8. 修改表-修改字段类型: alter table 表名 modify 字段名 字段类型 约束
9. 修改表-修改字段名和字段类型: alter table 表名 change 原字段名 新字段名 字段类型 约束
10. 修改表-删除字段: alter table 表名 drop 字段名;
11. 删除表: drop table 表名;
12. 查询数据: select * from 表名; 或者 select 列1,列2,... from 表名;
13. 插入数据: insert into 表名 values (...) 或者 insert into 表名 (列1,...) values(值1,...)
14. 修改数据: update 表名 set 列1=值1,列2=值2... where 条件
15. 删除数据: delete from 表名 where 条件

6.as 和 distinct
可以通过as给字段起一个别名

1.使用as给字段起别名
select id as 序号,name as 名字,gender as 性别 from students;

2.可以通过as 给表起别名

如果是单表查询 可以省略表名

select id,name,gender from syudents;

表名,字段名

select students.id,student.name,students.gender from students;

可以通过 as 给表起别名

select s.id,s.name,s.gender from students as s;

3.distinct 关键字
distinct 可以去除重复数据
select distinct 列1,… from 表名;

查询班级中学生的性别
select name, gender from students;

看到了很多重复数据 想要对其中重复数据进行去重操作可以使用distinct
select distinct name,gender from students;

7.where条件查询

where 条件查询可以对表中的数据进行筛选

where语句支持运算符

  1. 比较运算符
  2. 逻辑运算符
  3. 模糊查询
  4. 范围查询
  5. 空判断

where 条件查询语法格式:
select * from 表名 where 条件;
select * from studenyts where id = 1;

2.比较运算符查询
1. 等于: =
2. 大于: >
3. 大于等于: >=
4. 小于: <
5. 小于等于: <=
6. 不等于: != 或 <>

查询编号大于3的学生
select * from students where id > 3;

查询编号不大于4的学生
select * from students where id <= 4;

查询姓名不是黄蓉的学生
select* from students where name != ‘黄蓉’;

查询没被删除的学生
select * from students where is——delete=0;

  1. 逻辑运算符查询

    1. and
    2. or
    3. not
      例1:查询编号大于3的女同学:
      select * from students where id > 3 and gender=0;

例2:查询编号小于4或没被删除的学生:
select * from students where id < 4 or is_delete=0;

例3:查询年龄不在10岁到15岁之间的学生:
select * from students where not (age >= 10 and age <= 15);
说明:
多个条件判断想要作为一个整体,可以结合‘()’。

  1. 模糊查询
    1. like是模糊查询关键字
    2. %表示任意多个任意字符
    3. _表示一个任意字符

例1:查询姓黄的学生:
select * from students where name like ‘%黄’;

例2:查询姓黄并且“名”是一个字的学生:
select * from students where name like ‘黄_’;

例3:查询姓黄或叫靖的学生:
select * from students where name like ‘黄%’ or name like ‘%靖’

  1. 范围查询
    1. between … and … 表示在一个连续的范围内查询
    2. in 表示在一个非连续的范围内查询

例1:查询编号为3至8的学生:
select * from students where id between 3 and 8;

例2:查询编号不是3至8的男生:
select * from styudents where (not id between 3 and 8) and gender=‘男’;

  1. 空判断查询

    1. 判断为空使用: is null
    2. 断非空使用: is not null

例1:查询没有填写身高的学生:
select * from students where height is null;

注意:
1. 不能使用 where height = null 判断为空
2. 不能使用 where height != null 判断非空
3. null 不等于 ‘’ 空字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值