数据库
是按照数据结构组织、存储和管理数据的仓库。本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。
分类
SQL分类
数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等
数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等
数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户。
数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等
数据表中的数据类型
整数类型 tinyInt 很小的整数
smallint 小的整数
mediumint 中等大小的整数
int(integer) 普通大小的整数
小数类型 float 单精度浮点数
double 双精度浮点数
decimal(m,d) 压缩严格的定点数
日期类型 year YYYY
time HH:MM:SS
date YYYY-MM-DD
datetime YYYY-MM-DD HH:MM:SS
timestamp YYYY-MM-DD HH:MM:SS文本、二进制类型 CHAR(M) M为0~255之间的整数
VARCHAR(M) M为0~65535之间的整数
TINYBLOB 允许长度0~255字节
BLOB 允许长度0~65535字节
MEDIUMBLOB 允许长度0~167772150字节
LONGBLOB 允许长度0~4294967295字节
TINYTEXT 允许长度0~255字节
TEXT 允许长度0~65535字节
MEDIUMTEXT 允许长度0~167772150字节
LONGTEXT 允许长度0~4294967295字节
VARBINARY(M)允许长度0~M个字节的变长字节字符串
BINARY(M) 允许长度0~M个字节的定长字节字符串
创建数据库
create database 数据库名
查看数据库MySQL服务器中的所有的数据库:
show databases;删除数据库
drop database 数据库名称;切换数据库:
use 数据库名;创建数据表格式
create table 表名(
字段名 类型(长度) 约束,
字段名 类型(长度) 约束
);哪些约束:
主键约束
非空约束
唯一约束
外键约束查看数据库中的所有表:
格式:show tables;
查看表结构:
格式:desc 表名;
例如:desc sort;修改表添加列
alter table 表名 add 列名 类型(长度) 约束;创建用户表:
需求:创建用户表,用户编号,姓名,用户的地址CREAT TABLE users ( uid INT, uname VARCHAR(20), uaddress VARCHAR(200) );
主键约束
主键是用于标识当前记录的字段。它的特点是非空,唯一。
在开发中一般情况下主键是不具备任何含义,只是用于标识当前记录。格式:
1.在创建表时创建主键,在字段后面加上 primary key.
create table tablename(
id int primary key,
…
) 2.在创建表时创建主键,在表创建的最后来指定主键
create table tablename(
id int,
…,
primary key(id)
) 3.删除主键:alter table 表名 drop primary key;
alter table sort drop primary key; 4.主键自动增长:一般主键是自增长的字段,不需要指定。
实现添加自增长语句,主键字段后加auto_increment
修改表结构
- 修改表添加列
alter table 表名 add 列名 类型(长度) 约束;
例如:
为分类表添加一个新的字段为 分类描述 varchar(20)
ALTER TABLE sort ADD new VARCHAR(20);- 修改表修改列的类型长度及约束
alter table 表名 modify 列名 类型(长度) 约束;
例如:
为分类表的分类名称字段进行修改,类型varchar(50) 添加约束 not null
ALTER TABLE sort MODIFY sname VARCHAR(50) NOT NULL;- 修改表修改列名
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
例如:
为分类表的分类名称字段进行更换 更换为 snamesname varchar(30)
ALTER TABLE sort CHANGE sname snamename VARCHAR(30);- 修改表删除列
alter table 表名 drop 列名;
例如:
删除分类表中snamename这列
ALTER TABLE sort DROP snamename;- 修改表的字符集
alter table 表名 character set 字符集;
例如:
为分类表 tables 的编码表进行修改,修改成 utf8
ALTER TABLE tables CHARACTER SET utf8;数据表添加数据
insert into 表 (列名1,列名2,列名3…) values (值1,值2,值3…);
举例:
INSERT INTO product (id,pname,price) VALUES (1,‘笔记本’,5555.99);添加数据格式,不考虑主键
insert into 表名 (列名) values (值)举例:
INSERT INTO product (pname,price) VALUE(‘洗衣机’,800);删除数据
- 语法:
delete from 表名 [where 条件];