一. 数据库的基本知识
1. 如何查看本机ip地址:
在cmd 中 输入 ipconfig
2. mysql的小tips:
- 按 ctrl + -/+ 可以调整字体的大小
- gbk 编码方式是一个中文字符占据两个字节
- utf8 是一个中文字符占用三个字节
- utf8mb4 是一个中文字符占用四个字节
二. 数据库的操作
1. 创建数据库
sql
create database [if not exists] `数据库名` charset=字符编码(utf8mb4);
--这是默认编码 utf8mb4,就算不写也是此编码
2. 展现所有创建的数据库; 展现当前数据库中存在的表格
sql
show databases;
show tables;
3.使用、切换数据库的方法(``反引号是为了规避关键字)
sql
use `try1`
4. 删除数据库
sql
DROP database `try1`;
5. 创建表
sql
-- primary key(主键不可重复 auto_incremen 自动分配)
-- comment 是备注, not null 是不允许为空
-- varchar(65535/4) 65535是varchar最大容量,因为是uft8mb4,一个是4位,所以65535/4 是长度
-- int 是 2^32 次方 10位数 10个长度, TINYINT(2^8)
-- ; 是结束符号
create table `trytable`(
`uid` int primary key auto_increment comment "人员id",
`sex` enum("女","男","保密") not null comment"性别",
`name` varchar(20) not null comment "人员名称",
`age` tinyint not null COMMENT"人员的年龄"
);
-- primary key(主键不可重复 auto_incremen 自动分配)
-- comment 是备注, not null 是不允许为空
-- varchar(65535/4) 65535是varchar最大容量,因为是uft8mb4,一个是4位,所以65535/4 是长度
-- int 是 2^32 次方 10位数 10个长度, TINYINT(2^8)
-- ; 是结束符号
6. 查看整个表的结构(是建立表时的内容属性等)
有show 和 describe 两种方法
sql
show CREATE TABLE `try1`.trytable;
describe `try1`.`trytable`;
7. 修改表的名称
-- 修改表的名称
alter table `old_name` rename `new_name`;
-- 修改表的引擎
alter table `表名` engine = innodb|myisam;
-- 移动表 到指定的数据库
alter table `表名` rename to 数据库名.表名;
sql
alter table `try1`.`trytable` rename `try1`.`trytable1`
8. 修改字段
alter table `表名` add `字段名` 数据类型 属性;
sql
alter table `try1`.`trytable` add nickname VARCHAR(20) default "无" comment "昵称";
9. 修改字段的属性 (modify)
alter table `表名` modify `字段名` 数据类型 属性;
sql
alter table `try1`.`trytable` modify `nickname` varchar(30) not null comment "昵称";
10. 修改字段的名称
alter table `表名` change `原字段名` `新的字段名` 数据类型 属性;
既可以修改字段的名称还可以修改字段的属性(名字必须要改)
sql
ALTER TABLE `TRY1`.trytable CHANGE `nickname` `nick` varchar(20)
null default "无" comment "昵称";
11. 删除字段
alter table `表名` drop `字段名`;
sql
alter table `TRY1`.trytable drop `nick`;
12. 数据的插入
sql
-- ⼀次插⼊⼀⾏
insert into `表名` set `字段`=值, `字段`=值;
-- 按照指定字段, ⼀次插⼊多⾏
insert into `表名` (字段1, 字段2 ...) values (值1, 值2, ...), (值1, 值2, ...);
-- 指定全部字段, ⼀次插⼊多⾏
insert into `表名` values (null, 值1, 值2, ...), (null, 值1, 值2, ...);
单行写入:
sql
insert into `try1`.`trytable` set `name`="张三", `sex`="男", `age`=18;
-- 这里的sex可以通过索引的方式写入,当时编写table时,顺序时女 男 密码,所以1是女
insert into `try1`.`trytable` set `name`="小红", `sex`="1", `age`=18;
多行写入(筛选字段):
sql
insert into `try1`.`trytable`(`name`,`age`,`sex`)
values("张三丰",112,3), ("欧阳锋",65,"女"),("李白",100,2);
多行写入(不筛选字段) ,注意values的顺序要和创建table时候的顺序一致
sql
insert into `try1`.`trytable` values(null,"男","绿巨人",36),(null,"女","黑寡妇",12);
会忽略已有数据,如果数据存在,就不管他,不存在就会添加进去
sql
insert IGNORE into `demo`.`usetable` select * form `demo`.`userinfo`;
13. update 修改
sql
-- 修改全表数据
update `表名` set `字段1`=值, `字段2`=值;
-- 使⽤ where 修改满⾜条件的⾏
-- where 类似于 if 条件, 只执⾏返回结果为 True 的语句
update `表名` set `字段1`=值, `字段2`=值 where `字段`=值;
update `表名` set `字段1`=值, `字段2`=值 where `字段`=值 and `字段`=值;
sql
update `demo`.`userinfo` set sex="男" where uid=3;
14. delete and truncate(会完全删除)
sql
-- 删除表中的所有数据 (逐⾏删除)
delete from `表名`;
-- 清空全表 (⼀次性整表删除)
truncate `表名`
-- 使⽤ where 修改满⾜条件的⾏
delete from `表名` where `字段` = 值;
delete from `表名` where `字段` in (1, 2, 3, 4);
15. 复制表
create table `新表的名称` select * from `原表名`;
特点: 完整的复制⼀个表,既有原表的结构,⼜有原表的数据,不能复制主键
sql
-- 执行下列语句
create table `新表的名称` select * from `原表名`;
#特点: 完整的复制⼀个表,既有原表的结构,⼜有原表的数据,不能复制主键
特点: 复制后的表结构与原表相同,但是⾥⾯没有数据,是⼀张空表,可以复制主键
先创建一个结构一样的空表,再将数据复制进去
sql
create table `新表的名称` like `原表名`;
#特点: 复制后的表结构与原表相同,但是⾥⾯没有数据,是⼀张空表,可以复制主键
-- 复制数据
insert into `新表的名称` select * from `原表名`;