SQL语句
什么是SQL
结构化查询语言(Structured Query Language),一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL语句使用特点
- SQL语言基本上独立于数据库本身
- 各种不同的数据库对SQL语言的支持与标准存在着细微的不同
- 每条命令必须以 ; 结尾
- SQL命令(除了数据库名和表名)可以不区分字母大小写
建立数据库和数据表
数据库操作
1.查看已有库
show databases;
2.创建库
create database 库名 [character set utf8];
(创建时最好加上charset=utf8, 这样这个库里的文件就可以包含中文字符了)
e.g. 创建stu数据库,编码为utf8
create database stu character set utf8;
create database stu charset=utf8;
3.查看创建库的语句(还可以看到各个字段的属性等)
show create database 库名;
e.g. 查看stu创建方法
show create database stu;
4.查看当前所在库(注意一定要加括号,select是个函数)
select database();
5.切换库(唯一的一句不用加分号也可以执行的语句)
use 库名;
e.g. 使用stu数据库
use stu;
6.删除库
drop database 库名;
e.g. 删除test数据库
drop database test;
7.库名的命名规则
- 数字、字母、下划线,但不能使用纯数字
- 库名区分字母大小写
- 不能使用特殊字符和mysql关键字
数据表的管理
表结构设计初步
【1】 分析存储内容
【2】 确定字段构成
【3】 设计字段类型
数据类型支持
数字类型:
整数类型(精确值) - INT,SMALLINT,TINYINT,MEDIUMINT,BIGINT
定点类型(精确值) - DECIMAL
浮点类型(近似值) - FLOAT,DOUBLE
比特值类型 - BIT
对于精度比较高的东西,比如money,用decimal类型提高精度减少误差。列的声明语法是DECIMAL(M,D)。
M是数字的最大位数(精度)。其范围为1~65,M 的默认值是10。
D是小数点右侧数字的数目(标度)。其范围是0~30,但不得超过M。
比如 DECIMAL(6,2)最多存6位数字,小数点后占2位,取值范围-9999.99到9999.99。
比特值类型指0,1值表达2种情况,如真,假
字符串类型:
CHAR和VARCHAR类型
BLOB和TEXT类型
ENUM类型和SET类型
- char 和 varchar
char:定长,效率高,一般用于固定长度的表单提交数据存储,默认1字符
varchar:不定长,效率偏低 ,但是节省空间。
- text 和blob
text用来存储非二进制文本
blob用来存储二进制字节串
- enum 和 set
enum用来存储给定的选项, 创建记录时只能写其中的一个值
set用来存储给定的选项, 创建记录时可以写其中的一个或多个值
- 表的基本操作
创建表(不同的字段,用逗号隔开,全部字段一起用括号括起来)
create table 表名(
字段名 数据类型,
字段名 数据类型,
…
字段名 数据类型
);
- 如果你想设置数字为无符号则加上 unsigned
- 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
- DEFAULT 表示设置一个字段的默认值
- AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
- PRIMARY KEY 关键字用于定义列为主键。主键的值不能重复,且不能为空。
e.g. 创建班级表
create table class_1 (id int primary key auto_increment,name varchar(32) not null,age tinyint unsigned not null,sex enum('w','m'),score float default 0.0);
e.g. 创建兴趣班表
create table interest (id int primary key auto_increment,name varchar(32) not null,hobby set('sing','dance','draw'),level char not null,price decimal(6,2),remark text);
查看数据表
show tables;
查看已有表的字符集(各个字段的属性)
show create table 表名;
查看表结构(用表格的形式查看已有表的字符集,也就是各个字段的属性)
desc 表名;
删除表
drop table 表名;