文章目录
数据库
写在前面:
关键词 | 含义 |
---|---|
[ ] | 方括号代表该词条可选,不是必须填写的 |
db_name | 数据库名称(示例用) |
tbl_name | 表名称(示例用) |
一、SQL语句分类
SQL的英文全称:Structured Query Language 结构化查询语言
DDL:Data Definition Language数据定义语言
DQL:Data Query Language数据查询语言
DML:Data Manipulation Language数据操作语言
主要的为这3类;其余的还有:DCL:数据控制语言、TPL事务处理语言、CCL指针控制语言
1、DDL语句
Data Definition Language
常用关键字:create 、alter 、drop
作用:创建数据库和表结构等等
<1>常用语句表
语句功能 | 语法 | 备注 |
---|---|---|
显示所有的数据库 | show databases; | |
创建数据库 | create database de_name ; | 默认编码:gbk |
创建数据库(包含使用的字符集) | create database de_name [charset=字符集名称(gbk、utf8等)]; | |
显示数据库创建细节 | show create database db_name; | |
创建字符集为UTF8的数据库 | create database db_name charset=utf8; | |
删除 数据库 | drop database db_name; |
下面我们一起来创建一个数据库
1、我们先确认下本机已有的数据库show databases; (这个步骤不必要的)
当使用显示数据库:show databases;时,在命令行会出现以下界面(如果你之前从未在该电脑上安装过数据库)
information_schema:用来维护其他所有数据库的信息 例如数据库名、数据
库的表格、表格字段的数据类型等等。
Mysql : 自带的一个数据库,不用动,例如创建的用户就保存在mysql中。
Performance_schema: 主要用于收集数据库服务器性能参数,DBA通过
performance_schema 得到的信息能够了 n解性能降低可能是由于哪些瓶颈.
Test: 自带的默认的数据库,可以随便使用。
2、创建一个数据库 create database;
3、使用这个数据库前可以先查看它的创建细节.show create database mydb1;
4、选择创建好数据库 use db_name;
使用我们先前创建的数据库mydb1;
5、查看当前使用的数据库 select database();
没毛病!!! 至此我们的第一个数据库已经创建完成。
接下来就是创建数据库的内容了!
在创建内容之前,我们要先确认数据库支持的数据类型
<2>MySQL支持的数据类型
MySQL支持多种数据类型,大致可以分为3类:数值、日期/时间和字符串(字符)类型;
注:表格中粗体字段需着重记忆。
数值类型
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
TINYINT | 1 字节 | (-128,127) | (0,255) | 小整数值 |
SMALLINT | 2 字节 | (-32 768,32 767) | (0,65 535) | 大整数值 |
MEDIUMINT | 3 字节 | (-8 388 608,8 388 607) | (0,16 777 215) | 大整数值 |
INT | 4 字节 | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数值 |
BIGINT | 8 字节 | (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 极大整数值 |
FLOAT | 4 字节 | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 单精度 浮点数值 |
DOUBLE | 8 字节 | (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 双精度 浮点数值 |
DECIMAL | 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 | 依赖于M和D的值 | 依赖于M和D的值 | 小数值 |
日期和时间
注:timestamp类型有专有的自动更新特性。
类型 | 大小 (字节) | 范围 | 格式 | 用途 |
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | ‘-838:59:59’/‘838:59:59’ | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 | 1970-01-01 00:00:00/2038结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
字符串类型
类型 | 大小 | 用途 |
---|---|---|
CHAR | 0-255字节 | 定长字符串 比如手机号 |
VARCHAR | 0-65535 字节 | 变长字符串 |
TINYBLOB | 0-255字节 | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0-255字节 | 短文本字符串 |
BLOB | 0-65 535字节 | 二进制形式的长文本数据 |
TEXT | 0-65 535字节 | 长文本数据 |
MEDIUMBLOB | 0-16 777 215字节 | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 |
LONGBLOB | 0-4 294 967 295字节 | 二进制形式的极大文本数据 |
LONGTEXT | 0-4 294 967 295字节 | 极大文本数据 |
当我们了解了上面的内容后,我们可以开始学习创建第一个表。
<3>创建第一个表
创建表语法:
create table tbl_name(
字段1 数据类型,
字段2 数据类型,
字段3 数据类型…
);
创建第一个表(表名:sutudent):
字段 | 字段类型 |
---|---|
id | 整型 |
name | 字符形 |
height | 浮点(厘米形式,保留两位小数) |
chinese | 整型 |
math | 整型 |
english | 整型 |
<1>代码一打:
create table student(id int,name varchar(20),height float(5,2),chinese int,math int ,english int);
美化一下:
create table student(
id int,
name varchar(20),
height float(5,2),
chinese int,
math int ,
english int
);
<2>查看是否创建成功
查询语句:show tables;
看到这个界面就说明列表创建OJBK了;
<3>表创建完了,看看表结构
查看表结构:desc student;
数据没毛病,继续。
再看看表格字符集:show create student;
<4>修改刚才创建的表
修改语句:
alter table tbl_name [add丨modify丨change丨drop丨rename to丨…]
(1)插入新列(插入字段geography,数据类型为整数)
alter table student add geography int;
(2)修改name列,使其长度为60;
alter table student modify name varchar(60);
(3)修改name 为 student_name;
alter table student change name student_name varchar(20);
(4)删除geography列
alter table student drop gepgraphy;
(5)修改字符集为gbk
alter table student charset=gbk;
(6)将表名改成student_info
alter table studnet rename to student_info;
(7)删除表格(先别删这个表格,记住这个操作就行))
drop table tb_name;
(8)删除数据库(也先别删除,记住这个操作就行)
drop database db_name;
to be continue