一、MySQL中表的学习

 

1、表内添加主件;(ID)以便区分表内相同数据,任何表必须有主件。(关键字primary key)

 

Create table user (

 

Id int primary key,

 

Name varchar(10),

 

Age int

 

);

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_添加数据

 

2、replace(主要用于解决重复性数据的):不同于insert的是,replace添加时可对于相同数据进行覆盖,而insert则会出错。

 

例如:在原本的字段中添加相同数据,来比较两者不同之处:

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_字段_02

 

4、报错:

A:超过定义长度:比如定义的名字为10,实际输入为11位。

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_添加数据_03

 

B:定义不为空无输入时:比如定义的地址不为空(not null),按字段添加数据时不给地址添加数据,那么就会出现如图所示;

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_数据_04

 

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_字段_05

 

5、default:定义字段内的统一数据(例如定义sex字段内的数据为boy,那么不管他是否为空,添加数据时就不会出错,因为已经生成了所有的都是boy)

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_添加数据_06

 

6、递增组件:auto_increment

 

A:添加递增组件:

 

create table user(
 
-> id int primary key auto_increment,
 
-> name varchar(10)
 
-> );

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_数据_07

 

B:含义(添加数据时,不用管理id,输入其他数据,默认会按照递增的趋势写入数据)

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_添加数据_08

 

7、唯一性约束添加唯一性约束:alter table user add code varchar(18) UNIQUE;(表示code字段内的数据不能相同,添加相同的数据会报错)

 

A:添加

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_数据_09

 

B:添加数据(给user表中添加code字段并定义他的数据是唯一的,那么在第一次设置一个数据是123时,第二次输入相同数据123就会报错,与字段id,name无关)

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_数据_10

 

8、修改字段数据(update)

 

按字段修改:update user set age=28 where id=1;(将user表中的id=1的age字段修改为28)

 

  

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_字段_11

 

9、删除表(三种方式)

 

①、delete from xxx;(可用来删除一行数据,也可删除表所有数据)(删除数据较多的表有些耗时)注意:不是删除表,只是删除了其中的数据

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_字段_12

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_添加数据_13

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_字段_14

 

 

 

 

②、truncate table xxx;(简单快捷节省时间)(在数据较多的情况下可使用)

 

③、drop table xxx;(删除表)

 

10、克隆表(只能用来克隆表的结构,不能克隆表的数据。)

 

create table info like user;(创建一个info像之前的user表一样的结构)

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_数据_15

 

 

11、复制数据(从一个有数据的表中复制数据至一个空的表中)

 

insert into user select * from info;(将info表中的数据复制至user表中)

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_添加数据_16

 

二、MySQL数据库中表的查询

 

1、查询表中数据的三种方式

 

①、查询name字段的所有数据(展示出具体数据)

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_添加数据_17

 

②、查询表中所有的数据(展示数据个数)

 

A:count(*)

 

B:count(1)

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_数据_18

 

2、别名as

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_数据_19

 

3、and(满足大于等于两个条件才能展示出数据结果)

 

例如:select * from user where name="lxd" and age=19;(查询user表中name是“lxd”并且age是19的数据)

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_数据_20

 

4、Or(查询什么或者什么的数据,满足一个都展示出来)

 

例如:select * from user where name="lxd" or age=19;(查询user表中name是“lxd”还有age是19的数据)

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_添加数据_21

 

5、in(查询包含什么的数据,中间用逗号隔开)

 

例如:select * from user where name in ("lxd","lisi");(查询user表中包含name是“lxd”“lisi”的数据)

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_添加数据_22

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_字段_23

 

6、between...and...(查询在什么和什么之间的数据)

 

例如:select * from user where age between 18 and 20;(查询user表中age在18和20之间的数据)

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_添加数据_24

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_字段_25

 

7、Not between ..and..(查询不在两者之间的数据)

 

例如:select * from user where age not between 18 and 20;(查询user表中age不在18和20之间的数据)

 


 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_添加数据_26

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_添加数据_27

 

8、正交法查询

 

①、^代表以什么开头(select * from user where name rlike "^l" ;  查询以l开头的数据)

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_字段_28

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_数据_29

 

②、%代表任意数(select * from user where name like "lis%";    查询以lis开头的所有数据,%用来代表任意数)

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_数据_30

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_数据_31

 

③、$代表以什么结尾(select * from user where name rlike "si$";    查询以si结尾的所有数据)

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_数据_32

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_添加数据_33

 

三、导入数据(将桌面的数据文件导入MySQL中)

 

①、控制台进入放置数据的文件夹路径,

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_数据_34

 

②、使用命令mysql -h localhost -u root -p <employees.sql导入数据,数据都在<employees.sql这个文档里面

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_添加数据_35

 

③、使用命令mysql -h localhost -u root -p连接本地MySQL,展示数据库show databases;(在导入的过程中会生成一个数据库用来存放所有的表),

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_添加数据_36

 

④、进入到employees数据库(use employees;),查看表是否存在(show tables;)

 

 

mysql中已经存在的表创建分区 是否有影响 mysql创建表已存在就覆盖_添加数据_37