三,SQL语句

1.数据定义(DDL)

一条数据的存储过程

创建库-->定字段-->创建表(业务表)-->插数据

#DDL关键字
​
# create
# alter
# drop

一,库管理

1.创建库

必须指定库名,可以指定字符集(character set 字符集)排序方式(collate 排序方式)

字符集:编码格式,常见:UTF-8(5系列默认,3个字节,不全面)

utfmb4(8系统默认的,4个字节,全面 )

排序规则:utf8mb4_0900_ai_ci : UTF-8的不区分大小写(默认)

utf8mb4_0900_ai_cs : 区分大小写

#方式一
create database 数据库名;
#方式二 推荐
create database if not exists 数据库名;
#方式三
create database 数据库名 character set 字符集
create database 数据库名 collate 排序规则
#方式四
create database 数据库名 character set 字符集 collate 排序规则
​
​
#查看当前默认字符集和排序规则
show variables like 'character_set_database'
​
show variables like 'collation_datavase'
2.查看和使用库
#1.查看当前所有库
show databases;
#2.查看当前使用的库
select database();
#3.查看指定库下的所有表
show tables from 数据库名;
#4.查看创建库的信息
show create database 数据库名;
#5.切换库、选中库
use 数据库名;
3.修改库

数据库不能改名,创建一个新的库,将所有表复制到新库中,再删除旧的库。

#修改编码字符集
alter database 数据库名 character set 字符集
#修改排序方式
alter database 数据库名 collate 排序方式
#一起修改
alter database 数据库名 character set 字符集 collate 排序方式
4.删除库

三思,三思,三思!!!!

#直接删除库
drop database 数据库名;
#判断存在才删除数据库
drop database if exists 数据库名;

5.练习题

二,表管理

1.创建表语法

表名 列名 类型 必须得写

create table [if not exists] 表名 (
    列名 类型 [列可选约束(对数据进行限制的语法)] [comment'列可选注释'],
    列名 类型 [xxxxx]
)[表的约束][comment'列可选注释'];

CREATE DATABASE IF NOT EXISTS book_libs CHARACTER SET utf8 COLLATE utf8_croatian_ci;
​
use book_libs;
​
CREATE TABLE if not EXISTS books(
    book_name VARCHAR(20) COMMENT '我是图书的名称',
    book_price double(4,1) COMMENT '我是图书的价格',
    book_num int COMMENT '我是图书的名称'
)CHARACTER SET utf8 COMMENT '我是表的注解'; 
2.数据类型

无符号==无负号 ,默认有符号

create table stu(
    #unsigbed 跟在数据类型后,表示无符号 从0开始
    stu_age tinyint unsigbed
); 
​

选择标准,首先装得下你要存储的数据,第二是要存储占用的字节小的

不确定的情况下,选择较大范围的,避免值超范围导致的异常

整数类型:

浮点类型:

精度在底层不精准,会丢失精度

create table stu(
    #M 表示位数 整数+小数  
    #D 表示小数位数
    #当数据位数不满足存入的精度时,存入后会进行四舍五入
    stu_height float(M,D)
); 

定点数:货币,商品价格,精准

字符串:

char类型性能好,

varcahr可以识别空格

#char(M) 为固定长度,eg:不会为空

name char(5)   # == 'a____' 后面会自动填充4个空格,占满空间

text:大文本类型,不需要指定长度(不占有一行最大限制空间)

开发经验:

短文本固定长度用chareg:性别,手机号
短文本非固定长度varchar姓名,地址
大文本建议存储到文本文件,使用varchar记录文件地址,不使用text,直接存储大文本,性能较差

时间类型:

datetime 和 timestamp 类型自动初始化和更新

#1.插入默认当前时间和修改自动更新当前时间
ts timestamp default current_timestamp on update current_timestamp
​
dt datetime  default current_timestamp on update current_timestamp
​
#2.插入默认当前时间
ts timestamp default current_timestamp
​
dt datetime default current_timestamp
CREATE TABLE t2(
    na_me VARCHAR(12),
    time1 datetime default current_timestamp on update current_timestamp COMMENT '插入会自动维护时间,修改也会自动维护时间',
    time2 TIMESTAMP default current_timestamp COMMENT '插入会自动维护时间'
);
​
3.修改表
1.修改表中的列

关键字 : alter

#增加一列【可以指定x字段前或后】
alter table 表名 add 字段名 字段类型 [first/ after 字段名];
#修改列名
alter table 表名 change 原字段名 新字段名 新字段类型 [first/ after 字段名];
#修改列类型
alter table 表名 modify 字段名 新字段类型 [first/ after 字段名];
#删除一列
alter table 表名 drop 字段名;
2.修改表名
alter table 表名 rename [to] 新表明
4.删除表

无法回滚!!!无法找回!!!

#删除表
drop table [if not exists] 数据表1[,数据2,数据3...]
​
#清空表数据
truncate table 表名

5.查看表信息
desc 表名;

习题总结

显示表结构:

describe 表名;
​
desc 表名;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值