数据库和表的基本操作
1 数据库基础知识
1.1 查看数据库
show databases;
CREATE DATABASE [IF NOT EXISTS](检测是否有重名的数据库,如果有也不会报错)
CREATE DATABASE db_name CHARACTER SET charset_name gbk;创建字符集为gbk的数据库
CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_bin;
创建使用UTF-8字符集,并带校对规则的数据库
1.2 创建数据库
create database itcast;
1.3 查看数据库
show databases;
1.4 查看数据库信息,创建语句
show create database itcast;
1.5 修改数据库
alter database itcast defult character set gbk collate gbk_bin;
defult character set:字符集。
collate:排序规则。
1.6 选择数据库
use db_name;
select database();查看所选数据库
1.7 删除数据库
drop database itcast;
2 数据类型
使用MySQL数据库存储数据时,不同的数据类型决定了MySQL存储数据方式的不同。
2.1 整型
在MySQL数据库中,经常需要存储整数数值。根据数值取值范围的不同,MySQL中的整数类型可分为5种,分别是TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT。不同整数类型的取值范围可以根据字节数计算出来,例如,TINYINT类型的整数占用1个字节,1个字节是8位,那么,TINYINT类型无符号数的最大值就是28-1,即255。同理可以算出其它不同整数类型的取值范围。
如:
TINYINT:-128—127
2.2 小数
在MySQL数据库中,存储的小数都是使用浮点数和定点数来表示的。浮点数的类型有两种,分别是单精度浮点数类型(FLOAT)和双精度浮点类型(DOUBLE)。而定点数类型只有DECIMAL类型。
2.3 日期时间
为了方便在数据库中存储日期和时间,MySQL提供了表示日期和时间的数据类型,分别是YEAR、DATE、TIME、DATETIME和TIMESTAMP。使用NOW来输入当前系统的日期和时间。
CURRENT_TIMESTAMP,NULL,无任何输入,系统都会输入系统当前的日期和时间
YEAR
使用4位字符串或数字表示,范围为‘1901’~‘2155’
例如,输入‘2014’或2014插入到数据库的值为2014
使用YEAR类时,一定要区分‘0’和0,字符串格式的‘0’表示的是2000,0表示的是0000
DATA
以’YYYY-MM-DD’或者’YYYYMMDD’字符串格式表示
2.4 字符串和二进制
为了存储字符串、图片和声音等数据,MySQL提供了字符串和二进制类型。包括CHAR和VARCHAR类型、BINARY和VARBINARY类型、TEXT类型(小文本类型)、BLOB类型、ENUM类型、SET类型和BIT类型。
CHAR(4)不管插入的长度为多少,都为4
VARCHAR(4)所对应的数据所占字节数为实际长度加一
CHAR省时间,VARCHAR省空间
相同点是CHAR和VARCHAR类型都用来表示字符串数据。
不同点是CHAR存储固定长度字符串,也就是当你输入的字符小于你指定的数目时,它会在后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。VARCHAR可以存储可变长度的字符串,但它的存储效率没有CHAR高。
适合存储高清电影的数据类型是BOLB
3 数据表的基本操作
3.1 创建数据表
3.1.1 语法:
CREATE TABLE 表名
(
字段名1 数据类型[完整性约束条件],
字段名2 数据类型[完整性约束条件],
......
字段名n 数据类型[完整性约束条件],
)character set 字符集 collate 校对规则(一般使用默认,不设规定)
举例
create table teacher(
id VARCHAR(8),
name VARCHAR(10),
age int,
weight FLOAT
)
在操作数据表之前,应该使用“USE 数据库名”指定使用的数据库,否则会抛出“No database selected”错误。
如: use zhida;
3.2 查看数据表
3.2.1 语法
SHOW CREATE TABLE 表名;
可以查看创建表时的定义语句,和表的字符编码。
DESCRIBE 表名;
可以查看表的字段信息,其中包括字段名、字段类型等信息。
DESC 表名;、
查看表结构
举例
show create table student;
describe student;
dsc student;
3.3 修改数据表
六种修改形式:
1) 修改表名
alter TABLE student1 rename to student;
2) 修改字段名(列名),把name修改成username
alter table student change username name varchar(10);
3) 修改字段类型
alter table student modify age int;
4) 添加字段
alter table student add qq varchar(20);
5) 删除字段
alter table student drop qq;
6) 修改字段排列位置
alter table student MODIFY phone varchar(11) first;
alter table student MODIFY sex bit after name;
7) 修改表的字符集为utf8
alter table student character set utf8;
3.4 删除数据表
drop table student;
4 表的约束
为了防止数据表中插入错误数据,在MySQL中,定义了一些维护数据库完整性的规则,即表的约束。
约束条件 说明
PRIMARY KEY 主键约束,用于唯一标识对应的记录
FOREIGN KEY 外键约束
NOT NULL 非空约束
UNIQUE 唯一性约束
DEFAULT 默认值约束,用于设置字段的默认值
表中列举的约束条件均是针对表中字段进行的限制,从而保证表中数据的正确性和唯一性。
4.1 主键约束(PRIMARY KEY)
通过主键可以快速查找表中的某条信息,它可以唯一标识表中的记录,就好比身份证可以用来标识人的身份一样。
每个数据表中最多只能有一个主键约束,定义为PRIMARY KEY的字段,不能有重复值且不能为NULL值。
4.1.1 单字段主键
单字段主键指的是由一个字段构成的主键。创建单字段主键:
create table ex1(
id int primary key,
name varchar(10)
)
4.1.2 多字段主键
多字段主键指的是由多个字段组合而成的主键。创建多字段主键。
create table ex2(
id int,
name varchar(10),
sex int,
PRIMARY key(name ,sex)
)
4.2 非空约束
非空约束指的是字段的值不能为NULL,创建非空约束。
create table ex3(
id int,
name varchar(10) not null,
sex int
)
4.3 唯一约束
唯一约束用于保证数据表中字段的唯一性,即表中字段的值不能重复出现,要么为null,要么唯一,添加唯一约束会自动添加索引。
create table ex4(
id int,
name varchar(10) UNIQUE,
sex int
)
4.4 默认约束
默认约束用于给表中字段指定默认值,即当在表中插入一条新记录时,如果没有给这个字段赋值,那么,数据库系统会自动为这个字段插入默认值。注意,默认值和类型一致。
create table ex5(
id int,
name varchar(10),
sex int default 0
)
4.5 设置表的字段值自动增加
在数据表中,若想为表中插入的新记录自动生成唯一的ID,可以使AUTO_INCREMENT约束来实现。AUTO_INCREMENT约束的字段可以是任何整数类型,默认情况下,该字段的值是从1开始自增的。自增字段必须是键。
create table ex6(
id int PRIMARY key AUTO_INCREMENT,
name varchar(10),
sex int
)
4.6 外键约束
一个表中的某个字段,是另一个表中的主键,该键在第一个表中称为外键。
表一(部门)
create table dep(
id int primary key,
name varchar(10)
)
表二(老师),外键名称自动命名。
create table teacher(
id int primary key,
name varchar(10),
depId int,
FOREIGN key(depId) REFERENCES dep(id)
)
表二(老师),外键名称手动命名。
create table teacher1(
id int primary key,
name varchar(10),
depId int,
CONSTRAINT depId FOREIGN key(depId) REFERENCES dep(id)
)
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明,KuangStudy,以学为伴,一生相伴!