mysql创课程表tno是什么_MySQL-SQL基础应用

如果您对数据库感兴趣,可以添加 DBA解决方案QQ群:855439640

1、SQL介绍

结构化查询语言

5.7 以后符合SQL92严格模式 (一种规范 --- 关系型数据库的SQL)通过sql_mode参数来控制

2、常用SQL分类

DDL:数据定义语言

DCL:数据控制语言

DML:数据操作语言

DQL:数据的查询语言

SQL引入--数据库的逻辑结构

库名字

库属性:字符集,校对规则(排序规则)

表名

表属性:存储引擎类型,字符集,校对规则(排序规则)

列名

列属性:数据类型,约束,其他属性

数据行

3、数据类型、表属性、字符集

3.1 数据类型

3.1.1 作用

保证数据的准确性和标准性。

3.1.2 种类

数值类型

8bd14dc42e3d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

tinyint : -128~127 (1个字节)

int :-2^31~2^31-1 (4个字节)

说明:手机号是无法存储到int的。一般是使用char类型来存储收集号

字符类型

8bd14dc42e3d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

char(100)

定长字符串类型,不管字符串长度多长,都立即分配100个字符长度的存储空间,未占满的空间使用"空格"填充

varchar(100)

变长字符串类型,每次存储数据之前,都要先判断一下长度,按需分配此盘空间.

会单独申请一个字符长度的空间存储字符长度(少于等于255,如果超过255以上,会占用两个存储空间)

enum('bj','tj','sh'):

枚举类型,比较适合于将来此列的值是固定范围内的特点,可以使用enum,可以很大程度的优化我们的索引结构。

时间类型

8bd14dc42e3d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

列值不能为空,也是表设计的规范,尽可能将所有的列设置为非空。可以设置默认值为0

DATETIME

范围为从 1000-01-01 00:00:00.000000 至 9999-12-31 23:59:59.999999。

TIMESTAMP

1970-01-01 00:00:00.000000 至 2038-01-19 03:14:07.999999。

timestamp会受到时区的影响

二进制类型

8bd14dc42e3d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

3.2 表属性

3.2.1 列属性

约束(一般建表时添加):

**primary key** :主键约束

设置为主键的列,此列的值必须非空且唯一,主键在一个表中只能有一个,但是可以有多个列一起构成。

**not null** :非空约束

列值不能为空,也是表设计的规范,尽可能将所有的列设置为非空。可以设置默认值为0

**unique key** :唯一键

列值不能重复

**unsigned** :无符号

针对数字列,非负数。

其他属性:

**key** :索引

可以在某列上建立索引,来优化查询,一般是根据需要后添加

**default** :默认值

列中,没有录入值时,会自动使用default的值填充

**auto_increment**:自增长

针对数字列,顺序的自动填充数据(默认是从1开始,将来可以设定起始点和偏移量)

**comment ** : 注释

3.2.2 表的属性

存储引擎:

InnoDB(默认的)

字符集和排序规则:

utf8

utf8mb4

3.3 字符集和校对规则

3.3.1 字符集

show charset;

utf8 一个字符最多3个字节

utf8mb4 (建议) 一个字符最多4个字节,支持emoji

举例:

varchar(20) utf8mb4

1. 能存20个任意字符

2. 不管存储的时字符,数字,中文,都1个字符最大预留长度是4个字节

3. 对于中文,1个占4个字节

4. 对于数字和字母,1个实际占用大小是1个字节

select length() from test; 查看列值的字节长度

3.3.2 校对规则(排序规则)

mysql> show collation;

对于英文字符串的,大小写的敏感

utf8mb4_general_ci 大小写不敏感

utf8mb4_bin 大小写敏感(存拼音,日文)

主要用于查询

4、DDL应用 (数据定义语言)

4.2 库定义

4.2.1 创建

4.2.1 创建数据库

create database school;

create schema sch;

show charset;

show collation;

CREATE DATABASE test CHARSET utf8;

create database oldboy charset utf8mb4 collate utf8mb4_bin;

建库规范:

1.库名不能有大写字母

2.建库要加字符集

3.库名不能有数字开头

4.库名要和业务相关

建库标准语句

mysql> create database db charset utf8mb4;

mysql> show create database xuexiao;

4.2.2 删除(生产中禁止使用)

mysql> drop database oldboy;

4.2.3 修改

SHOW CREATE DATABASE school;

ALTER DATABASE school CHARSET utf8;

注意:修改字符集,修改后的字符集一定是原字符集的严格超集

4.2.4 查询库相关信息(DQL)

show databases;

show create database oldboy;

4.3 表定义

4.3.1 创建

--- 建表

表名,列名,列属性,表属性

--- 列属性

PRIMARY KEY : 主键约束,表中只能有一个,非空且唯一.

NOT NULL : 非空约束,不允许空值

UNIQUE KEY : 唯一键约束,不允许重复值

DEFAULT : 一般配合 NOT NULL 一起使用.

UNSIGNED : 无符号,一般是配合数字列,非负数

COMMENT : 注释

AUTO_INCREMENT : 自增长的列

create table stu(

列1 属性(数据类型、约束、其他属性) ,

列2 属性,<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值