网站制作引擎,给非法公司做网站维护,广告设计网站建设怎么做,邢台做移动网站找谁数据库和表的操作 一、数据库的操作1. 创建数据库2. 字符集和校验规则#xff08;1#xff09;查看系统默认字符集以及校验规则#xff08;2#xff09;查看数据库支持的字符集#xff08;3#xff09;查看数据库支持的字符集校验规则#xff08;4#xff09;校验规则对… 数据库和表的操作 一、数据库的操作1. 创建数据库2. 字符集和校验规则1查看系统默认字符集以及校验规则2查看数据库支持的字符集3查看数据库支持的字符集校验规则4校验规则对数据库的影响 3. 操纵数据库1查看数据库2显示创建的语句3修改数据库 4. 数据库删除5. 备份和恢复1备份数据库2还原3拓展 6. 查看连接情况 二、表的操作1. 创建表2. 查看表3. 查看表结构4. 修改表5. 删除表 一、数据库的操作
1. 创建数据库
语法CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specification:[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation_name说明
大写的表示关键字mysql 不区分大小写所以也可以用小写[] 是可选项CHARACTER SET: 指定数据库采用的字符集COLLATE: 指定数据库字符集的校验规则
假设现在我们现在需要创建一个名为 d1 的数据库首先我们先查看一下数据库查看数据库show databases; 下面开始创建 d1 数据库create database d1; 如上d1 数据库就创建好了。
注意当我们创建数据库没有指定字符集和校验规则时系统使用默认字符集utf8校验规则是utf8_ general_ ci. 创建一个使用 utf8 字符集的 d2 数据库create database d2 charsetutf8; 创建一个使用 utf8 字符集并带校对规则的 d3 数据库create database d3 charsetutf8 collate utf8_general_ci;
创建好如下 我们在前面也说过创建一个数据库其实就是在 Linux 下创建一个目录这里就不再重复介绍了。
2. 字符集和校验规则
当我们创建数据库的时候有两个编码集
数据库编码集 - - - 数据库未来存储数据所采用的编码集数据库校验集 - - - 支持数据库进行字段比较使用的编码本质也是一种读取数据库中数据所采用的编码格式
所以数据库无论对数据做任何操作都必须保证操作和编码必须是编码一致的。
字符集主要是控制用什么语言。比如 utf8 就可以使用中文。
1查看系统默认字符集以及校验规则 show variables like character_set_database; # 默认字符集show variables like collation_database; # 检验规则如下 2查看数据库支持的字符集 show charset;3查看数据库支持的字符集校验规则 show collation;4校验规则对数据库的影响
不区分大小写
创建一个数据库校验规则使用 utf8_ general_ ci (不区分大小写即在检验的时候不严格匹配不对大小写字母进行区分) create database test1 collate utf8_general_ci;随后我们需要使用这个数据库use test1
然后我们为这个数据库创建一张表并插入一些数据创建表和插入的语法我们先不做介绍后面再介绍如下 接下来我们对这个表的插入结果进行查看注意该表的校验方法是不进行区分大小写进行匹配的所以我们先查看整个表的情况select * from for_test; 接下来我们筛选出 a 这个字符select * from for_test where namea; 我们可以看到数据库在匹配 a 这个字符的时候不进行大小写区分无论大写还是小写都给我们显示出来了。
区分大小写
创建一个数据库校验规则使用 utf8_ bin (区分大小写校验时按照严格匹配的方式区分大小写)
我们按照上面的方式进行创建如下图 接下来我们查看该表的数据 接下来我们筛选出 a 字符 如上图因为该数据库的检验规则为 utf8_ bin进行区分大小写的方式进行严格匹配所以筛选出来的字符 a 就是字符 a.
3. 操纵数据库
1查看数据库 show databases;2显示创建的语句 show create database 数据库名;例如 说明
MySQL 建议我们关键字使用大写但是不是必须的数据库名字的反引号,是为了防止使用的数据库名刚好是关键字/ * !40100 default… * / 这个不是注释表示当前mysql版本大于4.01版本就执行这句话
3修改数据库
语法 ALTER DATABASE db_name[alter_spacification [,alter_spacification]...]alter_spacification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name
说明对数据库的修改主要指的是修改数据库的字符集校验规则。
假设将我们上面创建的 test1 数据库的字符集改成 gbkalter database test1 charsetgbk; 如上图 test1 数据库的字符集就修改成了 gbk.
4. 数据库删除
语法 DROP DATABASE [IF EXISTS] db_ name;例如我们删掉我们前面建的 test2 数据库drop database test2;
如下 如上图test2 数据库就被删除了。
执行删除之后的结果
数据库内部看不到对应的数据库对应的数据库文件夹被删除级联删除里面的数据表全部被删
5. 备份和恢复
1备份数据库
在备份数据库之前我们先需要退出 mysql.
语法 mysqldump -P3306 -u root -p密码 -B 数据库名 数据库备份存储的文件路径其中密码部分我们可以不在命令行输入当我们执行这条命令的时候命令行会提示我们输入。
例如我们把 test1 库备份到文件中mysqldump -P3306 -uroot -p -B test1 /home/lmy/test1.sql 这时可以打开看看 test1.sql 文件里的内容其实把我们整个创建数据库建表导入数据的语句都装载这个文件中。
接下来我们进入 mysql 中把这个数据库删掉 如上图test1 库就被我们删除了接下来我们进行还原。
2还原
语法 source 数据库备份的文件路径;我们在 mysql 中输入指令source /home/lmy/test1.sql; 即可在 mysql 中恢复 test1 库 3拓展
如果备份的不是整个数据库而是其中的一张表怎么做做法如下 mysqldump -uroot -p 数据库名 表名1 表名2 备份文件路径如果同时备份多个数据库如下 mysqldump -uroot -p -B 数据库名1 数据库名2 ... 数据库存放路径如果备份一个数据库时没有带上 -B 参数 在恢复数据库时需要先创建空数据库然后使用数据库再使用 source 来还原。
6. 查看连接情况
查看连接情况可以告诉我们当前有哪些用户连接到我们的 MySQL如果查出某个用户不是我们正常登陆的很有可能我们的数据库被人入侵了。以后大家发现自己数据库比较慢时可以用这个指令来查看数据库连接情况。
语法 show processlist;例如 二、表的操作
1. 创建表
语法 CREATE TABLE table_name (field1 datatype,field2 datatype,field3 datatype) character set 字符集 collate 校验规则 engine 存储引擎;在创建表之前需要指定数据库即使用use 数据库; 为该数据库创建表。
注意数据库的数据类型我们暂时先不介绍后续会介绍。
说明
field 表示列名datatype 表示列的类型character set 字符集如果没有指定字符集则以所在数据库的字符集为准collate 校验规则如果没有指定校验规则则以所在数据库的校验规则为准
例如我们创建一个 users 表里面存储用户的 id、用户名、密码、生日 create table users(- id int,- name varchar(20) comment 用户名,- password char(20) comment 密码,- birther date comment 生日- ) character set utf8 engine MyISAM;说明不同的存储引擎创建表的文件不一样。users 表存储引擎是 MyISAM 在数据库目录中有三个不同的文件我们可以进入该目录查看cd /var/lib/mysql/d1分别是 其中它们分别表示
users.frm表结构users.MYD表数据users.MYI表索引
而 db.opt 则是该数据库对应的字符集和检验规则。
2. 查看表
上面我们已经创建好了一张 users 表此时我们可以查看该数据库有哪些表show tables; 3. 查看表结构
语法desc 表明;
例如查看 users 表的结构 以上就是表的结构中的介绍我们后面会详细介绍每一列的功能的。
4. 修改表
在项目实际开发中经常修改某个表的结构比如字段名字字段大小字段类型表的字符集类型表的存储引擎等等。我们还有需求添加字段删除字段等等这时我们就需要修改表。 ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,columndatatype]...); # 添加ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,columndatatype]...); # 修改ALTER TABLE tablename DROP (column); # 删除例如
先在 users 表添加两条记录 mysql insert into users values(1, a, b, 2000-01-01), - (2, c, d, 2000-01-02);在 users 表添加一个字段用于保存图片路径alter table users add assets varchar(100) comment 图片路径 after birther; 插入新字段后我们查看原表的数据对原来表中的数据没有影响 修改 name将其长度改成 60 alter table users modify name varchar(60); 删除 password 列 alter table users drop password; 我们再查看表中的数据发现 password 这一列的数据都不见了 所以删除字段一定要小心删除字段及其对应的列数据都没了。
修改表名为 employee alter table users rename to employee; 其中 to 可以省略 将 name 列修改为 xingming alter table employee change name xingming varchar(60); 新字段需要完整定义 5. 删除表
语法DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
例如 再次查看