一. 数据库的基本知识

1. 如何查看本机ip地址:

        在cmd 中 输入 ipconfig

2. mysql的小tips:

  • 按 ctrl +    -/+ 可以调整字体的大小
  • gbk 编码方式是一个中文字符占据两个字节
  • utf8 是一个中文字符占用三个字节
  • utf8mb4 是一个中文字符占用四个字节

二. 数据库的操作

1. 创建数据库

create database [if not exists] `数据库名` charset=字符编码(utf8mb4);
--这是默认编码 utf8mb4,就算不写也是此编码

2. 展现所有创建的数据库;  展现当前数据库中存在的表格

show databases; 
show tables;

3.使用、切换数据库的方法(``反引号是为了规避关键字)

use `try1`

4. 删除数据库

DROP database `try1`;

5. 创建表

-- 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 两种方法

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 数据库名.表名;

alter table `try1`.`trytable` rename `try1`.`trytable1`

8. 修改字段

  alter table `表名` add `字段名` 数据类型 属性;

alter table `try1`.`trytable` add nickname VARCHAR(20) default "无" comment "昵称";

week06day01 mysql-LMLPHP

week06day01 mysql-LMLPHP

9. 修改字段的属性 (modify)

     alter table `表名` modify `字段名` 数据类型 属性;

alter table `try1`.`trytable` modify `nickname` varchar(30) not null comment "昵称";

10. 修改字段的名称

  alter table `表名` change `原字段名` `新的字段名` 数据类型 属性;

    既可以修改字段的名称还可以修改字段的属性(名字必须要改)

ALTER TABLE `TRY1`.trytable CHANGE `nickname` `nick` varchar(20)
 null default "无" comment "昵称";

11. 删除字段


      alter table `表名` drop `字段名`;

alter table `TRY1`.trytable drop `nick`;

12. 数据的插入

-- ⼀次插⼊⼀⾏
insert into `表名` set `字段`=值, `字段`=值;
-- 按照指定字段, ⼀次插⼊多⾏
insert into `表名` (字段1, 字段2 ...) values (值1, 值2, ...), (值1, 值2, ...);
-- 指定全部字段, ⼀次插⼊多⾏
insert into `表名` values (null, 值1, 值2, ...), (null, 值1, 值2, ...);

 单行写入:


insert into `try1`.`trytable` set `name`="张三", `sex`="男", `age`=18;
-- 这里的sex可以通过索引的方式写入,当时编写table时,顺序时女 男 密码,所以1是女
insert into `try1`.`trytable` set `name`="小红", `sex`="1", `age`=18;

多行写入(筛选字段):

insert into `try1`.`trytable`(`name`,`age`,`sex`) 
values("张三丰",112,3), ("欧阳锋",65,"女"),("李白",100,2);

多行写入(不筛选字段) ,注意values的顺序要和创建table时候的顺序一致

insert into `try1`.`trytable` values(null,"男","绿巨人",36),(null,"女","黑寡妇",12);

 会忽略已有数据,如果数据存在,就不管他,不存在就会添加进去

insert IGNORE into `demo`.`usetable` select * form `demo`.`userinfo`;

13. update 修改

-- 修改全表数据
update `表名` set `字段1`=值, `字段2`=值;
-- 使⽤ where 修改满⾜条件的⾏
-- where 类似于 if 条件, 只执⾏返回结果为 True 的语句
update `表名` set `字段1`=值, `字段2`=值 where `字段`=值;
update `表名` set `字段1`=值, `字段2`=值 where `字段`=值 and `字段`=值;
update `demo`.`userinfo` set sex="男" where uid=3;

14.  delete and truncate(会完全删除)

-- 删除表中的所有数据 (逐⾏删除)
delete from `表名`;
-- 清空全表 (⼀次性整表删除)
truncate `表名`
-- 使⽤ where 修改满⾜条件的⾏
delete from `表名` where `字段` = 值;
delete from `表名` where `字段` in (1, 2, 3, 4);

15. 复制表

 #  create table `新表的名称` select * from `原表名`;

 特点: 完整的复制⼀个表,既有原表的结构,⼜有原表的数据,不能复制主键

-- 执行下列语句
create table `新表的名称` select * from `原表名`;
#特点: 完整的复制⼀个表,既有原表的结构,⼜有原表的数据,不能复制主键

# 特点: 复制后的表结构与原表相同,但是⾥⾯没有数据,是⼀张空表,可以复制主键

 先创建一个结构一样的空表,再将数据复制进去

create table `新表的名称` like `原表名`;
#特点: 复制后的表结构与原表相同,但是⾥⾯没有数据,是⼀张空表,可以复制主键

-- 复制数据
insert into `新表的名称` select * from `原表名`;
03-06 10:13