sql入门
数据库初级
什么是数据库?
软件存储数据的仓库
前端:用户输入数据
后端:用户数据处理
数据库:存储数据
学习数据库的目的是什么?
- 检测测试过程中的数据 (进行排除)
- 前端bug
- 后端bug
- 登录的网络问题
- 准备测试数据
造测试数据;
清除脏数据 - 性能测试的时候准备测试数据
数据库类型
mysql
,db2
,oracle
,sqlserver
数据库的类型很多,但是语言命令大部分是相同的
数据库学习的内容
- 数据库的增删改查
- 数据库表的增删改查
- 表结构的增删改查
- 数据库表数据的增删查改
- 连接名:为每个连接取别名,影响不大
- 主机和ip地址:连接数据库服务器的ip
数据库编码格式:
- GB2312 简体中文
- BIG5 繁体中文
- utf8 万国码
- 显示所有数据库
show databases;
- 创建数据库
create database 数据库名 charset=utf8;
- 删除数据库
drop database 数据库名
- 切换数据库
use 数据库名
- 查询当前所在数据库
select database()
表创建
创建表时,需要创建表结构。一个表至少包含一列,列在数据库内称为字段。
每个字段的字段名不可重复
每个字段都有数据的限制--能够存储什么样的数据类型
数据类型:
int 整数 数字范围 -21亿---+21亿
char()固定字符类型
char(10)最长10个字符;就算存入两个字符也按10个字符长度计算
固定的可以提高修改效率,不修改磁盘空间,缺点是容易造成磁盘空间浪费
varchar()可变字符类型
varchar(20) 最长可以存入20个字符;不足20按照实际字符长度存储,节省硬盘空间;
float 浮点类型 5.6,-9.8,1.3
bool 布尔类型 0,1 真或假
date 日期 2021-08-06
datetime 2021-08-06 11:46:56
1.创建表时
create table 表名(字段1 数据类型(),字段2 数据类型()......)
2.显示所有表
show tables
3.修改表名
alter table 原表名 rename 新表名
4.删除表
drop table 表名
表结构
在表创建以后,可以对表结构进行修改,对字段的增删改查,字段的增删改查就是对表的修改
-
查看表字段:可以看到表内所有字段名和字段数据类型以及其他约束
desc 表名 Field:字段,表示的是列名 Type:数据类型 NULL:表示该字段是否可以为空 Key:主键 Default:默认值 Extra:其他信息
-
增加字段
alter table 表名 add 字段名 数据类型(长度) alter table aad add address varchar(50); after:添加的字段在谁的字段后面: alter table aad add address1 varchar(40) after id; first :添加的字段放在首位 alter table aad add address2 varchar(40) first;
-
修改表字段:
change 替换字段,modify 修改再短 alter table 表名 change 原字段 新字段 数据类型(长度) alter table aad change address2 id1 int; alter table 表名 modify 原字段 数据类型(长度) alter table aad modify id1 char(15); 删除字段 alter table表名 drop字段名 alter table aad drop id1; 多项操作(,左右都要有动词) alter table 表名 add 字段名 数据类型(长度),change 原字段 新字段 数据类型(长度),drop 字段名 alter table aad add id1 int,change id id2 int(15),drop address;
-
表数据
1. 插入数据 insert into 表名 (字段1,字段2....) values(值1,值2.........) 字段和值要一一对应,即要遵照该字段的数据类型插入数据。当插入的是全字段的时候字段名可以省略 insert into aa1(id,name) values(1,'王德') select * from aa1 insert into aa1 values(2,'li') insert into aa1(id) values(3) 2. 查询数据 select * from 表名 查询表的所有内容 *代表查询所有字段 select 字段名 from 表名 查询标的某些列 3.修改数据 update 表名 set 字段=值 where条件 update aa1 set name='张三' where id=3 4.删除数据:删除数据是一整行的删除 delete from表名 where 条件 5.清空表 delete from 表名 效率低一点 一行一行的删除 truncate 表名 效率高一点
-
复制&复制数据
- 复制表:创建一张新表,表结构和原表相同,数据相同
create table 复制表名 as select * from 原表名 create table 复制表名 as select 字段1 from 原表 create table 复制表名 as select 字段1,字段2 from原表 where 条件 create table aa2 as select * from aa1 select * from aa2 desc aa2 desc aa1 create table aa3 as select id from aa2 where id=3 select * from aa3
- 复制数据
在表中插入数据,数据与原表相同,在插入的数据的数量与格式要对应
insert into 表(字段1,字段2 ) select 字段1,字段2 from 表名 where 条件 insert into aa4 (id,name) select id,name from aa1 where id=1 insert into aa4(name) select name from aa1 where id=3
-
约束--了解
约束是添加在字段上的,对字段内的数据进行限制
字段的约束类型:数据类型(长度)、为空、重复
主键约束:
primary key
,添加主键的字段不能为空且不能重复每个表都只有一个主键,一般主键都是ID,id是给数据添加序号,本身没有太多实际意义
- 添加主键
create table 表名(字段1 数据类型(长度) primary key,字段2 数据类型(长度)....) create table aa5(id int(10) primary key,name char(15)); alter table 表名 add primary key(字段名)给表添加主键 alter table aa6 add primary key(name) alter table 表名 modify 字段名 数据类型(长度) primary key
- 删除主键
alter table 表名 drop primary key
- 联合主键
多个字段共同组成联合主键,每个字段不能为空,且组合字段不能重复,单个字段的数据可以重复 create table 表名(字段1 数据类型(长度),字段2 数据类型(长度),primary key(字段1,字段2) create table aa7 (id int(12),name char(15),primary key(id,name)) alter table 表名 add primary key(字段1,字段2) alter table aa7 add primary key (id,name)