8.3 mysql 表操作
库操作
一 系统数据库
information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等
performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象
mysql: 授权库,主要存储系统用户的权限信息
test: MySQL数据库系统自动创建的测试数据库
1 语法(help create database)
CREATE DATABASE 数据库名 charset utf8; 2 数据库命名规则:
可以由字母、数字、下划线、@、#、$
区分大小写
唯一性
不能使用关键字如 create select
不能单独使用数字
最长128位
二 创建数据库
查看数据库
show databases;
show create database db1;
select database();
选择数据库
USE 数据库名
删除数据库
DROP DATABASE 数据库名;
修改数据库
alter database db1 charset utf8;
三 数据库相关操作
表操作
表操作02 初识SQL语句
SQL语句: 操作文件夹(库)
增
create database db1 charset utf8;
查
show create database db1;
show databases;
改
alter database db1 charset gbk;
删
drop database db1; 操作文件(表)
切换文件夹:use db1;
查看当前所在文件夹:select database(); 增
create table t1(id int,name char);
查
show create table t1;
show tables;
desc t1;
改
alter table t1 modify name char(6);
alter table t1 change name NAME char(7);
删
drop table t1; 操作文件内容(记录)
增
insert t1(id,name) values(1,'egon1'),(2,'egon2'),(3,'egon3');
查
select id,name from db1.t1;
select * from db1.t1;
改
update db1.t1 set name='SB'; # 改所有的name
update db1.t1 set name='ALEX' where id=2;
删
delete from t1;
delete from t1 where id=2;
view
03 存储引擎介绍
1、什么是存储引擎?
存储引擎就是表的类型 2、查看MySQL支持的存储引擎
show engines; 3、指定表类型/存储引擎
create table t1(id int)engine=innodb;
create table t2(id int)engine=memory;
create table t3(id int)engine=blackhole;
create table t4(id int)engine=myisam; insert into t1 values(1);
insert into t2 values(1);
insert into t3 values(1);
insert into t4 values(1);
view
04 日期类型
create table student(
id int,
name char(6),
born_year year,
birth_date date,
class_time time,
reg_time datetime
); insert into student values
(1,'egon',now(),now(),now(),now()); insert into student values
(2,'alex',"","1997-12-12","12:12:12","2017-12-12 12:12:12");
view
05 字符类型
char:定长 # 会去掉最右边空格,左边的不会去掉
varchar:变长 # 不会去掉右边的空格,右边超过长度的会去掉, char 定长,char(5) 即使不够5个,也按5个去存,
varchar(5) 变长,按实际去存更节省 #宽度指的是字符的个数
create table t4(name char(5));
create table t5(name varchar(5)); insert into t4 values('你好 '); #'你好 '
insert into t5 values('你好 '); #'你好 ' select char_length(name) from t4; #5
SELECT char_length(name) FROM t4; # 空格给我都去了
+---------------------+
| char_length(name) |
|---------------------|
| 2 |
+---------------------+ select char_length(name) from t5; #3
SELECT char_length(name) FROM t5;
+---------------------+
| char_length(name) |
|---------------------|
| 3 |
+---------------------+ select name from t4 where name='你好';
select name from t4 where name like '你好';
+--------+
| name |
|--------|
| 你好 |
+--------+ select name from t5 where name='你好';
+--------+
| name |
|--------|
| 你好 |
+--------+
1 row in set
Time: 0.002s
select name from t5 where name like '你好';
+--------+
| name |
|--------|
+--------+ INSERT INTO t4 VALUES(' 你好 ');
Query OK, 1 row affected
Time: 0.073s
SELECT char_length(name) FROM t4;
+---------------------+
| char_length(name) |
|---------------------|
| 2 |
| 4 |
+---------------------+ INSERT INTO t5 VALUES(' 你好 ');
Query OK, 1 row affected
Time: 0.041s
SELECT char_length(name) FROM t5;
+---------------------+
| char_length(name) |
|---------------------|
| 3 |
| 5 |
+---------------------+ name char(5)
egon |alex |wxx | name varchar(5)
1bytes+egon|1bytes+alex|1bytes+wxx|
4+egon|4+alex|3+wxx|
view
06 枚举类型与集合类型
create table consumer(
id int,
name char(16),
sex enum('male','female','other'),
level enum('vip1','vip2','vip3'),
hobbies set('play','music','read','run')
); insert into consumer values
(1,'egon','male','vip2','music,read'); insert into consumer values
(1,'egon','xxxxx','vip2','music,read');
view
约束条件
07 约束条件not null与default
create table t15(
id int(11) unsigned zerofill
); create table t16(
id int,
name char(6),
sex enum('male','female') not null default 'male'
); insert into t16(id,name) values(1,'egon');
view
08 约束条件unique key
unique key 单列唯一
#方式一
create table department(
id int unique,
name char(10) unique
);
#方式二:
create table department(
id int,
name char(10),
unique(id),
unique(name)
); insert into department values
(1,'IT'),
(2,'Sale'); 联合唯一
create table services(
id int,
ip char(15),
port int,
unique(id),
unique(ip,port) # ip 和 port 合起来唯一
); insert into services values
(1,'192.168.11.10',80),
(2,'192.168.11.10',81),
(3,'192.168.11.13',80); insert into services values
(4,'192.168.11.10',80);
view
09 约束条件primary key
primary key
约束:not null unique
存储引擎(innodb):对于innodb存储引擎来说,一张表内必须有一个主键 # 单列主键
create table t17(
id int primary key,
name char(16)
); insert into t17 values
(1,'egon'),
(2,'alex'); insert into t17 values
(2,'wxx'); insert into t17(name) values
('wxx'); create table t18(
id int not null unique,
name char(16)
); # 复合主键
create table t19(
ip char(15),
port int,
primary key(ip,port)
); insert into t19 values
('1.1.1.1',80),
('1.1.1.1',81);
view
10 约束条件 auto increment
auto_increment create table t20(
id int primary key auto_increment,
name char(16)
); insert into t20(name) values
('egon'),
('alex'),
('wxx'); insert into t20(id,name) values
(7,'yuanhao'); insert into t20(name) values
('egon1'),
('egon2'),
('egon3'); #了解
show variables like 'auto_inc%'; #步长:
auto_increment_increment默认为1
#起始偏移量
auto_increment_offset默认1 #设置步长
set session auto_increment_increment=5;
set global auto_increment_increment=5; #设置起始偏移量
set global auto_increment_offset=3;
# 强调:起始偏移量<=步长 create table t21(
id int primary key auto_increment,
name char(16)
); insert into t21(name) values
('egon'),
('alex'),
('wxx'),
('yxx'); mysql root@localhost:lala> SELECT * FROM t21;
+------+--------+
| id | name |
|------+--------|
| 1 | egon |
| 6 | alex |
| 11 | wxx |
| 16 | yxx |
+------+--------+ 清空表:
delete from t20;
delete from t20 where id = 3;
insert into t20(name) values
('xxx'); truncate t20; #应该用它来清空表
view
11 约束条件之foreign key
foreign key:建立表之间的关系 #1、建立表关系:
#先建被关联的表,并且保证被关联的字段唯一
create table dep(
id int primary key,
name char(16),
comment char(50)
); #再建立关联的表
create table emp(
id int primary key,
name char(10),
sex enum('male','female'),
dep_id int,
foreign key(dep_id) references dep(id)
on delete cascade
on update cascade
); #2、插入数据
#先往被关联表插入记录
insert into dep values
(1,"IT","技术能力有限部门"),
(2,"销售","销售能力不足部门"),
(3,"财务","花钱特别多部门"); #再往关联表插入记录
insert into emp values
(1,'egon','male',1); insert into emp values
(2,'alex','male',1),
(3,'wupeiqi','female',2),
(4,'yuanhao','male',3),
(5,'jinximn','male',2); delete from emp where dep_id=1;
delete from dep where id=1; # emp 中dep_id 为1 被删 delete from dep where id=3;
view
12 表之间的关系
两张表之间的关系:
1、多对一
出版社 书(foreign key(press_id) references press(id)) 2、多对多 # 第三张表存对应关系
作者 书
egon:
九阳神功
九阴真经
alex:
九阳神功
葵花宝典
yuanhao:
独孤九剑
降龙十巴掌
葵花宝典
wpq:
九阳神功 insert into author2book(author_id,book_id) values
(1,1),
(1,2),
(2,1),
(2,6); 3、一对一
customer表 student表
view
后续,----》数据操作
8.3 mysql 表操作的更多相关文章
- Python 3 mysql 表操作
Python 3 mysql 表操作 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 id,name,qq,age称为字段,其余的,一行内容称为 ...
- 数据库 -- mysql表操作
一,存储引擎介绍 存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制 详见:https://www.cnblogs.com/peng104/p/9751738.html 二,表介绍 表相当 ...
- MySQL表操作及数据操作
表操作 表相当于一个文件,其形式与现实中的表格相同.表中的每条记录都有相应的字段,字段就类似于表格的表头. 表操作详细: #对表进行操作(文件) #首先要切换到指定库(即文件夹)下:use db1; ...
- 细说MySQL表操作
目录 语法 查看表结构 查看所有的表 删除表 查看创建表的语句 修改表的字符集和校验规则 修改表名 在表中添加新字段 修改表的字段名 修改表中字段的属性 删除表中的某个字段 设置某个字段为主键 把某个 ...
- mysql表操作与权限操作
修改表ALTER TABLE 语法: . 修改表名 ALTER TABLE 表名 RENAME 新表名; . 增加字段 ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…], ...
- mysql数据库从删库到跑路之mysql表操作
表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 id,name,qq,age称为字段,其余的,一行内容称为一条记录 内容: 1 创建表 ...
- MySQL 表操作 (Day40)
阅读目录 一.表介绍 二.创建表 三.查看表 四.修改表 五.删除表 六.操作表中的记录 一.表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,则称为表 ...
- Mysql表操作
查看表结构: 可以使用describe或show create table语句查看表的结构: describe表名; Show create table 表名; 修改表名: Alter table 旧 ...
- mysql 表操作
创建表 简单的方式 CREATE TABLE person ( number INT(11), name VARCHAR(255), birthday DATE ); 或者是 CREATE TABLE ...
随机推荐
- 图解VS2005之单元测试
据说VS2005里即提供了测试功能,可是对于像我或者我们这样的开发人或团队真还没有进化到用测试这块.一直以来都是手工测试或等到用户发现问题.今天在网上找了一个介绍单元测试的WORD文档,按里面说的做了 ...
- oracle undo表空间大小修改
redhat:清空回收站 rm -rf /home/登录用户名/.Trash 例子:rm -rf /home/.Trash-root df命令可以显示目前所有文件系统的可用空间及使用情形: 例子:d ...
- The type org.springframework.context.support.AbstractApplicationContext cannot be resolved
在 myeclipse中,使用 jdk6和7,并使用 spring-framework-5.0.2.RELEASE 时,编写代码: import org.springframework.context ...
- 列名 'Discriminator' 无效 解决方案
{"列名 'Discriminator' 无效.\r\n列名 'Discriminator' 无效.\r\n列名 'Discriminator' 无效.\r\n列名 'FileUrl' 无 ...
- android基于adb的性能测试
应用CPU.内存.点亮.流量等数据,是应用测试的重要性能指标.本次以UC浏览器为例. 当前UC测试中,每个正式版本都会专门做一轮性能测试,测试数据包括: 1小时内存数据 1小时CPU数据 24小时电量 ...
- 031:Cetus sharding
目录 一.主机环境 二.搭建环境 1.准备环境 三.Cetus安装 1.下载包和安装依赖包 2.Cetus安装 1.安装说明 2.安装实施 四.Cetus配置 1.创建和修改配置文件 2.启动cetu ...
- c#中var类型用法同dynamic,object区别
1.object万能对象:object只是个对象,是个强类型,在编译的时候确定类型了,只能用对象本身的方法属性等等,object想使用动态属性方法只能用反射. 2.var万能强类型. 3.dynami ...
- PyQt5系列教程(二)利用QtDesigner设计UI界面
软硬件环境 OS X EI Capitan Python 3.5.1 PyQt 5.5.1 PyCharm 5.0.1 前言 在PyQt5系列教程的第一篇http://blog.csdn.net/dj ...
- Android Studio中由于gradle插件版本和gradle版本对应关系导致的编译失败的问题
今天在Android Studio中导入新项目,import之后编译报错,报错信息基本都是和版本相关,查询gradle版本相关知识,了解到gradle插件版本和gradle版本有相应的匹配关系,对应如 ...
- 利用TortoiseGit从Github上下载代码
1.首先确保安装好了Git和TortoiseGit并在Github上有存放资源 2.将git上博客源文件克隆到本地,在本地创建好要存放资源的文件夹,之后在此文件内右键单击,可以看到下拉菜单中增加了To ...