第7讲 mysql数据库
mysql数据库
1、关系型数据库
依据关系模型创建的数据库,把数据保存在不同的表中,表 与表存在着某些关系。
2、非关系型数据库
非关系型数据库也叫nosql数据库,全称not only sql。通常数据以对象的形式存储在数据库中,不固定结构,
例如列模 型,键值对模型。
3、关系型数据库特点
1.安全
2.保持数据的一致性
3.实现对表与表进行复杂的数据查询
4、非关系型数据库特点
1.效率高
2.容易扩展
5、关系型数据库有哪些
1.db2
2.oracle ==》收费 金融
3.mysql ==》免费
4.sql server ==》微软
6、非关系型数据库有哪些
1.hbase(列模型) ==》大数据
2.redis(键值对模型) ==》缓存
3.mongodb(文档类模型)==》文档类型
7、安装mysql数据库
1)yum install mysql ==》安装mysql数据库客户端
2)yum install mysql-server ==》安装mysql数据库服务端
3)rpm -qa|grep -i mysql ==》查看是否安装了mysql数据库
4)service mysqld status ==》查看MySQL数据库的状态(这个d是daemon 守护的进程)
5)service mysqld start ==》启动MySQL数据
6)service mysqld stop ==》关闭MySQL数据库
7)service mysqld restart ==》重启数据库
8)登录mysql 数据库[root@192 /]# mysql -uroot -p 第一次登录不需要密码
Enter password:
-u 代表用户user意思 root是用户
-p 代表是密码password意思
[root@192 /]mysqladmin -uroot password "123456" ==》修改初始密码123456
9)登录mysql 数据库[root@192 /]# mysql -uroot -p
Enter password: 123456
或者登录mysql 数据库[root@192 /]# mysql -uroot -p123456 ==》直接接密码登录数据库
10)mysql>use mysql; ==》进入到MySQL数据库
11)mysql>show databases; ==》展示所有的数据库 (注意数据库操作sql语句需要接英文分号)
12)mysql>exit; ==》退出MySQL数据库 或者按ctrl+c
13)create database +库名
mysql>create database dcs9; ==》创建一个dcs9这个数据库
14)drop database +库名
mysql>drop database dcs9; ==》删除dcs9这个数据库
use dcs9; ==》进入到dcs9这个库
16)select database(); ==》查看当前在哪个库
17)create table +表名(字段1 数据类型 约束,字段2 数据类型 约束,字段3 数据类型 约束...);
mysql>create table dcs(id int(10) primary key auto_increment,score float(10,2)
not null,name varchar(10),phone bigint(10) default 13977778888,time date);
18)show tables; ==》展示当前库下所有的表
19)mysql> desc dcs; ==》查看dcs这个表的表结构(desc ==>description)
+-------+-------------+------+-----+-------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+-------------+----------------+
| id | int(10) | NO | PRI | NULL | auto_increment |
| score | float(10,2) | NO | | NULL | |
| name | varchar(10) | YES | | NULL | |
| phone | bigint(10) | YES | | 13977778888 | |
| time | date | YES | | NULL | |
+-------+-------------+------+-----+-------------+----------------+
field ==》字段
type ==》类型
null ==》是否可以为空
key ==》primary key 主键
default ==》默认值
extra ==》额外备注
数据库中常见的数据类型【重点】
数值型
int ==》整型 最大值2147483647
bigint ==》整型 手机号 超过int 就只能用bigint
float ==》浮点型 float(10,2) 整数部分和小数部分加起来是总共10位,2是精确位数,2位小数点
文本型(varchar 和char 存储数据时需要单引号或者双引号)
区别:
1)char 的长度固定的,varchar 是可以变化的
char(10) 和varchar(10)同样存储‘abc’ ,对于char存储三个字节,还有7个回用
空格补上,varchar 存储的只有三个字节,其他7个不会用空格补上
2)char 的效率笔varchar要高
3)varchar 比char节省空间
日期型 存储数据时需要单引号或者双引号
date ==>"2022-8-3"
数据库有哪些约束【重点】
not null ==》非空约束
primary key ==》主键约束 唯一的,不能重复,一个表只有一个主键 如身份证
default ==>默认值约束,不给新值就是用默认
auto_increment ==》自增长约束,不给值时,默认加一,在这个一定要和主键一起使用
foreign key ==》外键约束 表与表之间的约束
8、修改表结构 【重点】
1.查看表结构 desc +表名 显示字段名称,数据类型,约束,备注
desc dcs ==》修改表结构
2.修改表名alter table +表名 rename + 新表名
alter table dcs rename dcs1 ==》把dcs这个表改名为dcs1
3.修改表字段 alter table +表名 change +原字段名 +新字段名 数据类型,约束
alter table dcs change id sid int(10); ==》把id字段改名为sid字段并且取消自增长
alter table dcs change sid id int(10); ==》把sid字段改名位id字段
alter table dcs change id id int(10) auto_increment; ==》不改变id字段加上自增长
4.添加表字段,并放到第一个字段前 alter table +表名 add +字段名 数据类型 约束 first
alter table dcs add class int(10) first; ==》添加一个字段放在最前面
5.添加表字段,并放到某个字段后 alter table +表名 add +字段名 数据类型 约束 after +字段名
alter table dcs add age int(10) after name; ==》添加一个字段放在name字段的后面
6.同时添加两个字段,默认添加到字段最后 alter table +表名 add(字段1 数据类型,
字段2 数据类型)
alter table dcs add(age1 int(10),age2 int(10)); ==》同时添加两个字段age1 和age2
删除表字段 alter table +表名 drop + 字段
alter table dcs drop class; ==》删除字段class
8.删除表两个字段 alter table +表名 drop 字段1,drop 字段2
alter table dcs drop age1,drop age2;
9.alter table dcs drop primary key; ==》当前存在自增长,删除主键报错,因为自增长不饿能单独存在
alter table dcs change id id int(10); ==》删除自增长
alter table dcs drop primary key; ==》删除主键
alter table dcs change id id int(10) primary key auto_increment;
==》不改变id字段添加主键和自增长
9.删除表drop table +表名
drop table dcs1; ==》删除dcs1这个表
10、msyql 数据库的增删改查【重点】
1)增 insert into +dcs表名
单条插入
insert into dcs(id,score,name,phone,time)values(1,99.88,'xiaoduan',13966668888,'2022-8-3');
insert into dcs values(2,88.88,'xiaoduan',13933334444,'2022-8-3');
多条插入
insert into dcs(id,score,name,phone,time)values(3,66.88,'xiaoduan',13900001111,'2022-8-3'),(4,77.88,'xiaoduan',13023456789,'2022-8-3'),(5,68.99,'xiaoduan',13969696969,'2022-8-3');
insert into dcs values(6,34.66,'xiaoduan',13523456789,'2022-8-3'),(7,67.00,'xiaoduan',13912341234,'2022-8-3');
单个字段插入
insert into dcs(id,name)values(8,'xiaoduan'); ==》只给id name 字段插入数据
insert into dcs(score,name)values(88.999,'xiaoduan'); ==》只给scre 和name插入数据
0不等于null, 0是一个值,null是一个空属性
2)删除 delete from +表名 ==》清除全表数据
delete from dcs ==》删除dcs表的全部数据
delete from dcs where id = 9 ==》删除id等于9的数据
delete from dcs where id>6 ==》删除id大于6的数
delete from dcs where !=1; ==》删除id不等于1的数据
truncate dcs ==》快速清除表的全部数据
drop table dcs ==》删除dcs这个表的数据和结构
注:TRUNCATE,DELETE,DROP放在一起比较:
TRUNCATE TABLE:快速删除表数据。
DELETE TABLE: 按条件删除表数据
DROP TABLE:删除表结构和表数据
3)改 update 表名 set 字段=? where ..
update dcs set score = 100; ==》把score字段的值全部改为100
update dcs set name ='xiaoming' where id = 5; ==》把id 等于5的数据name字段值改为xiaoming
4)查
1.查询表中所有数据 select * from +表名 ”*“ 代表所有
select * from dcs; ==》查询全表数据
2、查询某个字段的数据 select 字段 from +表名
select id from dcs; ==》只查询id字段数据
3、查询多个字段的数据 select 字段1,字段2 from +表名
select id,name from dcs; ==》只查询id name 字段的数据
4.查询满足某个条件的所有数据 select * from +表名 where 字段=值 where 后面接满足的条件
select * from dcs where id = 1; ==》查询id等于1 的数据
5.查询不满足某个条件的所有数据 select * from +表名 where 字段!=value “!=” 代表不等于
,也可以用符号 ”<>“ 代表不等于
select * from dcs where id != 1; ==》查询id不等于1 的数据
select * from dcs where id <> 1; ==》查询id不等于1 的数据
6.查询同时满足多个条件数据 select * from +表名 where 条件1 and
条件2 and 关键字左右的两个条件必须同时满足
select * from dcs where class = 1833 and sex = 1; ==》查询班级是1833且性别是1的数据
7.查询满足至少1个条件的数据 select * from +表名 where 条件1 or 条件2
or 关键字左右的两个条件至少满足1个,否则返回空
select * from dcs where class = 1833 or class = 1835; ==》
8.查询一个条件范围内的数据 select * from +表名 where 字段 between m
and n between...and ... 指定一个范围
#查询年龄在25和31 之间的数据
#select * from student where age between 25 and 31;
9.查询字段满足在指定的集合中的数据 select * from +表名 where 字段
in(值1,值2,值3)
#查询class为1833或者class为1835的数据
#select * from student where class in (1833,1835);
10.查询字段不满足在指定集合中的数据 select * from +表名 where 字段
not in (值1,值2,值3)
#查询id 不在1和3里面的数据
#select * from student where id not in (1,3);
11.#查询年龄大于24和小于31的数据
#select * from student where age > 24 and age <31;
|
|