二、SQL
1、SQL语言分类
- SQL:Structured Query Language结构化查询语言)主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。
- DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
2、名词解释
- 数据库服务器:运行着数据库应用程序的设备=硬件+系统软件+MYSQL软件
- 数据库
- show databases; ---显示数据库的各个库(如同房间的一个个格子)
- mysql: 授权库,主要存储系统用户的权限信息
- information_schema: 虚拟库,主要存储了系统中的一些数据库对象的信息,例如用户表信息、列信息、权限信息、字符信息等
- create database ku1;---创建个人库
- 表(EXCEL)的管理单元
- 表:记录的管理单元
- 字段(列)
- 记录(行):由一个个字段组成,信息的载体
- 类型:字符,数字,日期
- 图示
3、DDL
- DDL库
- 创建数据库:create database ku1;
- 查看所有数据库:show databases;
- 进入ku1:use ku1; 调用当前库:select database();
- 删除库:drop database ku1;
- 数据库在centos系统中的位置:/var/lib/mysql/ ---数据库的实体,可进行备份
- 数据类型
- int:整数型
- float:浮点型
- 字符系列 char和varchar
- 枚举类型 enum:单选
- 集合类型 set:多选
- 时间和日期类型
- 年 year
- 日期 date
- 时间 time
- 日期和时间 datetime
- 约束类型
-
primary key:标识该字段为该表的主键,可以唯一的标识记录,不可以为空
创建
create table student.student4( id int not null, name varchar(50) not null, sex enum (‘m‘,‘f‘) default ‘m‘ not null, age int unsigned default 18 not null, hobby set(‘music‘,‘disc‘,‘dance‘,‘book‘) default ‘book,dance‘ );
插入
foreign key:标识该字段为该表的外键,实现表与表(父表主键/子表1外键/子表2外键)之间的关联
创建
create table student6( id int primary key not null auto_increment, name varchar(50) not null, sex enum(‘male‘,‘female‘) not null default ‘male‘, age int not null default 18 );
或
create table student7( -> id int auto_increment not null, -> name varchar(50) not null, -> sex enum(‘male‘,‘female‘) not null default ‘male‘, -> age int not null default 18, -> primary key(id) -> );
插入
insert into student6 values (1,‘alice‘,‘female‘,22);
insert into student6(name,sex,age) values (‘jack‘,‘male‘,19), (‘tom‘,‘male‘,23);
unique key:标识该字段的值是唯一的,可以为空,一个表中可以有多个UNIQUE
-
auto_increment:标识该字段的值自动增长(整数类型,而且为主键)
-
default:为该字段设置默认值
-
not null:必填
-
unsigned:无符号,正数
- zerofill:使用0填充,例如0000001
- DDL-表
-
创建表
CREATE DATABASE school; use school; create table student1( id int, name varchar (20) , sex enum(‘m‘,‘f‘), age int );
查看表名
show tables;
表中插入内容
insert into student1 values (1,‘zhangsan‘,‘m‘,33) ;
insert into student1 (id,name,sex,age) values (1,‘zhangsan‘,‘m‘,33) ;
查看表内容
select * from student1;
查看表结构
desc student1;