day34_数据库mysql

1、数据库介绍

1.1 架构关系

数据库服务器:运行数据库管理软件

数据库管理软件:管理数据库

数据库:即文件夹,用来组织文件/表

表:即文件,用来存放多行内容/多条记录

1.2 mysql账号操作

mysql基于socket编写的C/S架构软件

1、数据库操作

1.1 增

语法:

create database 数据库名 charset 字符编码;

数据库命名规则:

字母、数字、下划线、@、#、$
区分大小写
唯一性
不能使用关键字,如create\select\use等等
不能单独使用数字
最长128位

1.2 删

语法:

drop database 数据库名;

1.3 改

语法:

改变编码格式

alter database 数据库名 charset 字符编码 

改变数据库名称:

只能删了重建,后续学习如何保存

drop database 数据库名;
create database 数据库名;

1.4 查

语法:

查看所有的数据库

show databases;

查看当前所在的数据库

select database()

2、表操作

对表结构的操作

2.0 选择表

语法:

use 表名;

唯有此语法不加分号也行

2.1 列约束条件

auto_increment 自增
primary key 主键索引,加快查询速度,列的值不能重复
not null 非空
default 设置默认值

2.2 列类型

2.2.1 数字

- 整型
        tinyint
        smallint
        int   (************************) 推荐使用
        mediumint
        bigint

        a.整数类型
        b.取值范围
        c.unsigned  加上代表不能取负数  只适用于整型
- 浮点型
        float:  不一定精确 
        decimal(m,d): 非常精确的数字,m是数字总个数(负号不算),d是小数点后个数,四舍五入。

2.2.2 字符串

char(长度):
	定长,无论插入的字符是多少个,永远固定占规定的长度


varchar(长度):
	可变长度,根据插入的字符串的长度来计算所占的字节数,但是有一个字节是用来保存字符串的大小的
	
注意点:如果不能确定插入的数据的大小, 一般建议使用 varchar(255)
	

2.2.3 时间日期类型

YEAR
	YYYY(1901/2155)

DATE
	YYYY-MM-DD(1000-01-01/9999-12-31)

TIME
	HH:MM:SS('-838:59:59'/'838:59:59')

DATETIME  (***************************)  # 最常用的
	YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59    Y)

TIMESTAMP
	YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)
	
实例:

2.2.4 枚举类型

enum()  :列出所有的选项

2.1 增

语法:

创建表

create table 表名(
字段1名 数据类型(字符数) 约束条件,
字段2名 数据类型(字符数) 约束条件
)charset utf8;

新增列:

alter table 表名
add 字段名 数据类型(完整的约束条件),
add 字段名 数据类型(完整的约束条件);

alter table 表名
add 字段名 数据类型(完整的约束条件) first;

alter table 表名
add 字段名 数据类型(完整的约束条件) after 字段名;

2.2 删

语法:

删除表:

drop table 表名;

删除列:

alter table 表名
drop 字段名;

2.3 改

改表名:

alter table 表名
rename 新表名

修改字段:

alter table 表名
modify 字段名 数据类型(完整的约束条件);

alter table 表名
change 旧字段名 新字段名 新数据类型(完整的约束条件);

2.4 查

基本结构:desc 表名;或者descirbe 表名;

更详细定义信息:show create table 表名;

2.5 复制表结构

create table 表名 like 表名;

3、表记录操作

对表数据的操作

3.1 增

语法:

插入完整数据(顺序插入)

insert into 表名(字段1,字段2,字段3...字段n) values(值1,值2,值3...值n);
insert into 表名 values(值1,值2,值3...);

指定字段插入数据

insert into 表名(字段1,字段2,字段3...) values(值1,值2,值3...);

插入多条记录

insert into 表名 values
(值1,值2,值3...值n),
(值1,值2,值3...值n),
(值1,值2,值3...值n);

插入查询结果

insert into 表1名(字段1,字段2,字段3...字段n)
select (字段1,字段2,字段3...字段n) from 表2名
where ...;

3.2 删数据

语法:

delete from 表名
where 筛选条件  

truncate table 表名  ## 不能跟where条件,直接删除整个表数据,保留表结构

delete与truncate的区别:
1、delete 之后,插入的数据从上一次主键自增加1开始,truncate则是从1开始
2、delete 删除,是一行一行删除,truncate:全选删除,truncate删除的速度是高于delete的

3.3 改

语法:

#  一次只能修改一条记录,可以修改这条记录的多个值
update 表名 set
字段1名=值1,
字段2名=值2,
字段3名=值3
where 条件;

3.4 查

语法:

select * from 表名;

select 字段名 from 表名
where 筛选条件   # 没有条件就选中列中所有值

筛选条件:

1、字段名 相关
> >= < <= != <>
between ... and...
in (a,b,c)
not in (a,b,c)
like 'x%' 以x开头
like '%x' 以x结尾
like '%x%' 包含x
distinct 避免重复
posted @ 2019-10-28 18:27  W文敏W  阅读(180)  评论(0编辑  收藏  举报