MySQL 学习笔记

创建表 User后加
)character set 字符集
collate 检验规则
engine 存储引擎; MyISAM engine

创建字段后
comment ’ 注释’

查看表结构:

修改表的结构: 添加,删除,修改字段等

alter table tablename add …
alter table tablename modify… 这是修改表的数据类型,不是修改名字
alter table tablename drop (column)

alter table users add assects varchar(100) comment ‘图片路径’ after birthday
插入新字段后对原来表中的数据没有影响

alter table user modify name varchar(20)
将name的数据长度修改到60

alter table user drop name ;
删除字段name

alter table user rename yonghu;
将表名修改为yonghu

alter table user name chang name xingming varchar(10);
将name列修改为姓名. ----新的字段需要完整定义

drop table 表名
删除表

数据类型

1,数值类型
bit(M) M是指定位数 范围1~64

tinyint[unsigned] 带符号是-128~127 无符号范围是0~255 默认有序号

int [unsinged] 带符号是-2^15 到 2^15-1 无符号是2^16-1

float [(M,D)] [unsigned] M指定显示长度,D指定小数位数,占用四字节

decimal(M,D) [unsigned] M指定长度,D表示小数点的位数

2.文本,二进制类型

char(size) 固定长度的字符串 最大255

varchar(size) 可变长度字符串,最大长度65535

text 大文本,不支持全文索引,不支持默认值

3.时间日期

date yyyy-mm-dd

datetime yyyy-mm-dd hh:mm:ss

timestamp 时间戳-添加数据时,时间戳自动补上当前时间

4.String类型

enum类型 最多65535个 enum是一个字符串对象,其值来自表创建时在列规定中显示枚举的一列值

set类型 最多64个 是一个字符串对象,可以有零或多个值,其值来自表创建时规定的允许的一列值.

varchar长度可以指定为0到65535之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字节数是
65532。

如何选择定长或变长字符串?
如果数据确定长度都一样,就使用定长(char),比如:身份证,手机号,md5
如果数据长度有变化,就使用变长(varchar), 比如:名字,地址,但是你要保证最长的能存的进去。
定长的磁盘空间比较浪费,但是效率高。
变长的磁盘空间比较节省,但是效率低。

表的约束

保证数据的合法性

null/notnull, default, comment, zerofill, primary key, auto_increment, unique key

default 默认值

列描述
comment,没有实际含义,专门用来描述字段,会根据表创建语句保存,用来给程序员或DBA来进行了解。

通过desc查看不到注释信息 ,只能通过show create table 表名\G

zerofill,
alter table tt change a a int(5) unsigned zerofill;
如果宽度小于设定的宽度(这里设置的是
5),自动填充0。要注意的是,这只是最后显示的结果,在MySQL中实际存储的还是1。

主键

主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表最多只能有一个主键,主键所在的列通常是整数类型

当表创建好之后,可以再次追加主键
id int unsigned,
course char(10) comment ‘课程代码’,
score tinyint unsigned default 60 comment ‘成绩’,
primary key(id, course) – id和course为复合主键

alter table 表名 add primary key (字段列表)

alter table 表名 drop primary key;

自增长
auto_increment:
自增长的的特点
*
任何一个字段要做自增长,前提本身是一个索引(key一栏有值)
*
自增长字段必须是整数
*
一张表最多只能有一个自增长

索引:**
在关系数据库中,索引是一种单独的,物理的数据对表中一列或多列的值进行排序的一种存储结构, 它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单,索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容

唯一键
一张表中有往往有很多字段需要唯一性,数据不能重复,但是一张表只能有一个主键;唯一键就可以解决表中有多个字段需要唯一性约束的问题.

唯一键允许为空,而且可以多个为空,空字段不做唯一性比较

外键
外键用于定义主表和从表之间的关系: 外键约束主要定义在从表上, 主表则必须是有主键约束或unique约束. ?

当定义外键后,要求外键列数据必须在主表的主键列存在或为null.

表的增删改查
CRUD Create, Retrieve(取回), Update, Delete

create
insert into 表名 values(XXX,XXX);

插入的主键,和唯一键冲突

duplicate(完全一样)

更新操作
insert into 表名 on duplicate key update column =value;

替换
主键或者唯一键没有冲突, 则之间插入
主键或者唯一键有冲突,则删除后再插入

replace into 表名 values(XXX,XXX);

1. 

Retrieve

select

* 

进行全列查询 1,查询列越多,意味着需要传输的数据量越大 2,可能会影响到索引的使用
*
指定列的顺序不需要按照定义表的顺序来
*
表达式包含字段 比如: yingyuchengji + 10 那这列所有数据都加上10
*
为查询结果指定别名 AS
*
去重 distinct select distinct shuxue from exam_list

where 条件

1. 

, >=, <, <= 大于 大于等于 小于 小于等于
2.
= 等于 null 不安全 例如 null = null 结果是 null
3.
<=> 也是等于 但null安全 null<=>null 的结果是true(1)
4.
!= <> 不等于
5.
between a0 and a1, 范围匹配 都是闭合的 如果values [a0, a1] a0<=values<=a1 则返回 true(1)
6.
in(option…) 是选项里的任意一个 则返回 true
7.
is null 是null
8.
is not null 不是null
9.
like 模糊匹配. %表示任意多个(包括0个)任意字符, _ (下划线)表示任意一个字符

逻辑运算符

1. 

and
2.
or
3.
not 条件为true 返回结果为 false

结果排序

----ASC 为升序(从小到大) 默认排序是ASC
----DESC 为降序 (从大到小)

语句为:
SELECT … FROM table_name [WHERE…] ORDER BY column [ASC|DESC];

注意: 没有 ORDER BY自居的查询, 返回的顺序是未定义的, 不能依赖这个顺序

筛选分页结果

语法
从0开始,筛选n条结果
SELECT … FROM table_name [WHERE…] [ORDER BY ] LIMIT n;

从 s 开始, 筛选 n 条结果
SELECT … FROM table_name [WHERE…] [ORDER BY ] LIMIT s, n;

从s开始, 筛选n条结果,比第二种用法更明确
SELECT … FROM table_name [WHERE…] [ORDER BY ] LIMIT N OFFSET S;

SAHNG 未完待续…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值