一、SQL 语言基础
1、SQL 的概述
-
SQL全称: Structured Query Language,是结构化查询语言,用于访问和处理数据库的标准的计算机语言。 SQL语言1974年由Boyce和Chamberlin提出,并首先在IBM公司研制的关系数据库系统SystemR上实现。 -
美国国家标准局(ANSI)开始着手制定SQL标准,并在1986年10月公布了最早的SQL标准,扩展的标准版本是1989年发表的SQL-89,之后还有1992年制定的版本SQL-92和1999年ISO发布的版本SQL-99。 -
SQL标准几经修改和完善,其功能更加强大,但目前很多数据库系统只支持SQL-99的部分特征,而大部分数据库系统都能支持1992年制定的SQL-92。
2、SQL 的特点
-
具有综合统一性,不同数据库的支持的SQL稍有不同 -
非过程化语言 -
语言简捷,用户容易接受 -
以一种语法结构提供两种使用方式
3、SQL 语言的组成
-
数据定义语言-DDL -
数据操纵语言-DML -
数据控制语言-DCL -
数据查询语言-DQL
4、语法特点
-
SQL 对关键字的大小写不敏感 -
SQL语句可以以单行或者多行书写,以分行结束 -
SQL的注释:?
?
二、MySQL 简介
1、MySQL 的介绍
2、MySQL 的特点
-
MySQL数据库是用C和C++语言编写的,以保证源码的可移植性 -
支持多个操作系统例如:Windows、Linux、Mac OS等等 -
支持多线程,可以充分的利用CPU资源 -
为多种编程语言提供API,包括C语言,Java,PHP。Python语言等 -
MySQL优化了SQL算法,有效的提高了查询速度 -
MySQL开放源代码且无版权制约,自主性强、使用成本低。 -
MySQL历史悠久、社区及用户非常活跃,遇到问题,可以很快获取到帮助。
一、MySQL 数据库基本操作 - DDL
1、DDL 解释
DDL(Data Definition Language),数据定义语言,该语言部分包括以下内容:
-
对数据库的常用操作 -
对表结构的常用操作 -
修改表结构
2、对数据库的常用操作
功能 | SQL |
---|
查看所有的数据库 | show databases; | 创建数据库 | create database [if not exists] mydb1 [charset=utf8] | 切换 (选择要操作的) 数据库 | use mydb1; | 删除数据库 | drop database [if exists] mydb1; | 修改数据库编码 | alter database mydb1 character set utf8; |
操作语句不区分大小写
3、对表结构的常用操作 - 创建表
(1)创建表格式
create table [if not exists]表名(
字段名1 类型[(宽度)] [约束条件] [comment '字段说明'],
字段名2 类型[(宽度)] [约束条件] [comment '字段说明'],
字段名3 类型[(宽度)] [约束条件] [comment '字段说明']
)[表的一些设置];
创建表是构建一张空表,指定这个表的名字,这个表有几列,每一列叫什么名字,以及每一列存储的数据类型。
USE mydb1;
CREATE TABLE IF NOT EXISTS student (
sid INT,
NAME VARCHAR(20),
gender VARCHAR(20),
age INT,
birth date,
address VARCHAR(20),
score DOUBLE
);
(2)数据类型
数据类型是指在创建表的时候为表中字段指定数据类型,只有数据符合类型要求才能存储起来,使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间。
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|
TINYINT | 1 byte | (-128,127) | (0,255) | 小整数值 | SMALLINT | 2 bytes | (-32 768,32 767) | (0,65 535) | 大整数值 | MEDIUMINT | 3 bytes | (-8 388 608,8 388 607) | (0,16 777 215) | 大整数值 | INT或INTEGER | 4 bytes | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数值 | BIGINT | 8 bytes | (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 极大整数值 | FLOAT | 4 bytes | (-3.402 823 466 E+38,3.402 823 466 351 E+38) | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 单精度浮点数值 | DOUBLE | 8 bytes | (-1.797 693 134 862 315 7 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 | | 依赖于M和D的值 | 依赖于M和D的值 | 小数值 |
类型 | 大小( bytes) | 范围 | 格式 | 用途 |
---|
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 bytes | 定长字符串 | VARCHAR | 0-65535 bytes | 变长字符串 | TINYBLOB | 0-255 bytes | 不超过 255 个字符的二进制字符串 | TINYTEXT | 0-255 bytes | 短文本字符串 | BLOB | 0-65 535 bytes | 二进制形式的长文本数据 | TEXT | 0-65 535 bytes | 长文本数据 | MEDIUMBLOB | 0-16 777 215 bytes | 二进制形式的中等长度文本数据 | MEDIUMTEXT | 0-16 777 215 bytes | 中等长度文本数据 | LONGBLOB | 0-4 294 967 295 bytes | 二进制形式的极大文本数据 | LONGTEXT | 0-4 294 967 295 bytes | 极大文本数据 |
4、对表结构的常用操作—其他操作
功能 | SQL |
---|
查看当前数据库的所有表名称 | show tables; | 查看指定某个表的创建语句 | show create table 表名; | 查看表结构 | desc 表名 | 删除表 | drop table 表名 |
5、对表结构的常用操作—修改表结构格式
(1)修改表添加列
alter table 表名 add 列名 类型(长度) [约束];
-- 为student表添加一个新的字段为:系别 dept 类型为 varchar(20)
ALTER TABLE student ADD `dept` VARCHAR(20);
(2)修改列名和类型
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
-- 为student表的dept字段更换为department varchar(30)
ALTER TABLE student change `dept` department VARCHAR(30);
(3)修改表删除列
alter table 表名 drop 列名;
-- 删除student表中department这列
ALTER TABLE student DROP department;
(4)修改表名
rename table 表名 to 新表名;
-- 将表student改名成 stu
rename table `student` to stu;
|