MYSQL基础部分总结

MYSQL:

数据库

存储数据的仓库

数据

数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材。数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。在计算机系统中,数据以二进制信息单元0,1的形式表示。

数据库的作用

方便数据的存储和管理。

登录数据库

mysqld --skip-grant-tables

储存数据流程

(1)创建数据库:
create database 数据库名
命名规则:school school_db 不能重名
查看已经创建好的数据库:
show databases;
删除数据库
drop database 数据库名;
(2)use 数据库名;
(3)创建二维表
create table 表名 (
属性名1 数据类型 完整性约束(可以没有的),
属性名2 数据类型 完整性约束,
属性名3 数据类型 完整性约束,

属性名N 数据类型 完整性约束
);

查看表

show tables;

查看单个表的结构

show create table 表名;

删除表

drop table  表名;

插入语句

(1)属性不可缺省方式:

test_user(id int ,name varchar(20),age int)
insert into(into可以不写) 表名 values(属性值1,属性值2,属性值3,属性值4…);
insert test_user values (1,‘zhangSan’,15);
insert test_user values (2,‘liSi’);错
(2)属性可缺省方式:
insert into(into可以不写) 表名 (属性1,属性2,属性3,属性4…)
values(属性值1,属性值2,属性值3,属性值4…);
insert test_user(id,name) values (2,‘liSi’);
字符串类型 日期时间 加 ‘’ ‘Bob’ ‘1990’

varchar:存储数据时

(1)根据插入的数据进行计算 size
(2)开辟size+1个空间然后
(3)将数据存储进去

主键

通过主键推出其他的所有属性的值。
如果不满足上述条件说明主键设置的有问题。
一个表只能有一个主键

范式

1.第一范式(1NF) 每一列保持原子特性
2.第二范式(2NF) 非主属性完全依赖于主键
3.第三范式属性不依赖于其它非主属性(消除依赖传递)

删除语句

语法:delete from 表名 where 筛选条件;

外键

多张表之间的约束

父表 子表

外键建在哪个表中哪个表就成为子表 references 后面跟的是父表

创建外键的原则

只能将父表中的主键设置位外键

创建外键的作用

保证数据一致性

创建表的顺序

先创建父表 再创建子表

删除顺序的限制

先删除子表,后删除父表

进行表中的一些属性操作

(1):设置主键: primary key; 主键是唯一切不重复的

(2):设置外键: primary key;

(3):设置不为空: not null;

(4):设置属性唯一: unique ;

(5):设置属性自增: auto_increment;

(6):设置属性默认值:default;

子查询

子查询:是将一个查询语句嵌套在另外一个查询语句当中。内层查询的结果可以为外层查询提供查询条件
子查询的语法
select 属性列表 from 表1 where 连接方式 (select 属性列表 from 表2 where 刷选条件);
where之后+ 筛选条件/查询条件
连接方式:in 、not in、exists not exists、 比较运算符、 比较运算符和any/all的结合
例:
A : id :33 40 54 66 67 70 78 90
B : id :33 40 89 78 70 90 109 108
in / not in
select * from A where id in (select id from B where id > 70);
select * from A where id in (89 78 90 109 108);
78 90
select * from A where id not in (select id from B where id > 70);
select * from A where id not in (89 78 90 109 108);
33 40 54 66 67 70
比较运算符:
select * from 表名 where 属性 =>< (select 属性 from 另一个表名 where 属性条件);

特定词语

1.Like:代表任意数量的字符;:
select *from 表名 where 属性 like ‘%A’;尾部
select *from 表名 where 属性 like ‘%A%’;中间位置
select *from 表名 where 属性 like ‘A%’;头部;
_代表一个数量

2.order by 属性名: 表示查询出的数据按照属性进行排序;

3.between 介于两者之间;

4.group by :按照某个属性进行分组

5.update(修改) 表名 set 属性=’?’ where 属性=?;
例:update student set name=张三 where id=2 //修改学生表中id=2的名字为张三

6.select(查询)
select 属性名1,属性名2…from 表名 where 筛选条件;

更改编码形式和储存引擎

方法一:创建表的时候指定编码形式和
// 改变整张表的编码
mysql> CREATE TABLE stu_test (
-> id int(11) NOT NULL,
-> name varchar(10) DEFAULT NULL,
-> sex enum(‘男’,‘女’),
-> PRIMARY KEY (id)
-> ) CHARSET=utf8;
Query OK, 0 rows affected (0.04 sec)
方法二:
CREATE TABLE student_tb2 (
Sname varchar(10) CHARACTER SET utf8
);
在数据类型之后 + CHARACTER SET 编码
方法三:
还有一种方式是通过改变mysql编码的形式,是通过改变Mysql的配置文件,改变下面红框圈出来的为utf-8,记得操作之后一定要重新启动Mysql服务,需要新建数据库老的数据库还是之前的编码。
在这里插入图片描述
方法四:
如果定义的字符串类型想使用utf8编码,在定义的时候不适用char或者varchar来定义而是使用nchar或者nvarchar
例:
create table user(id int ,name nvarchar(10)));
create table user(id int,sex nchar(2));
方法五:
create table sex_tb2(
Ssex enum(‘m’,‘w’)
);
alter table sex_tb2 modify Ssex enum(‘男’,‘女’) character set utf8;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值