MySQL的基本操作-增删改创

1、MySQL的登录

语法:mysql  -h ip地 -u用户名 -p密码

例:mysql -h 59.34.56.11 -u root -p root

 

2、查看所有的表

语法:SHOW [FULL] TABLES [{FROM|IN} 数据库名] [LIKE 规则 | WHERE 条件];

full:以完整格式显示表的名称和类型

例:show full tables from neusoft1 where tables_in_neusoft1 = 'student1';

show tables like '%s%';

 

3、查看表结构

语法:DESC 表面 [列名];

DESC:DESCRIBE

例:DESC student1 stuno;

 

4、查看表的详细定义

语法:SHOW CREATE TABLE student1;

 

5、表的修改

a).添加列

语法:ALTER TABLE 表名 ADD ([column]列名1 类型1,列名2 类型2,......,列名n 类型n);

在某一列的前/后添加:ALTER TABLE 表名 ADD [column] 列名 类型 [first|after] 指定列名;

first是添加为首列,如:alter student1 add sex char(2) first;

alter student1 add (sex char(2) after stuname);

b).删除列

语法:alter table 表名 drop [column] 列名;

例:ALTER TABLE student DROP asid;

c). 修改列定义

语法:alter table 表名 modify [column] 列名 数据类型;

[column]可写可不写,不可一次修改多个列属性

如修改后的长度<原定义的长度,可能造成精度损失/数据更改(如小数位数减少,数据截断)

d).修改列名

语法:Alter table 表名 change 原列名 新列名 数据类型;

alter table student1 change adress newadress char(10);

alter table student1 change newadress newadress varchar(20);

在修改列名的时候,也可以修改属性,或者只修改属性不修改列名

e).修改列的顺序

语法:Alter table 表名 modify 列名1数据类型 first|after 列名2;

例1:将sal修改为表的第一列

Alter table emp modify sal float(4,2) first;

例2:将comm字段放在mgr的后面

Alter table modify comm float(4,2) after mgr;

f).修改表名

语法:Alter table 原表名 rename [to] 新表名;

To可写可不写,没有影响

 

6、添加数据

a).插入单条数据

语法格式:insert [into] 表名(列名1,列名2,…)values(值1,值2,…);

1) 当插入数据为日期或者字符串时,需要加上单引号

2) 列与值需要一一对应,不插入值时输入null’’

3) into可以省略,但由于MySQL是不规范的语法格式,省略可能在后续进行数据迁移时会造成错误

例:CREATE TABLE emp(

         empno int(4),

         ename varchar(5),

         job varchar(10),

         mgr int(4),

         hiredate date,

         sal float(9,2),

         comm float(9,2),

         deptno int(3));

Insert into emp(empno,ename,hiredate,sal) values(7788,’TOM’,’2019-12-12’,3456);

b).插入多条数据

1) 利用values子句插入多条记录

语法:insert  into 表名 (列1,列2…)  values  (列1值1,列2值1…), (列1值2,列2值2…) ,...;

例:insert into emp(empno.ename) values(1234,'allen'),(2345,'pirce'),(3456,'carte');

2) 利用select子句插入多条数据(复制)

语法:insert into 表名(列1,列2,…..)  select  列1,列2,….. from 表名;

例1:Insert into emp(empno) select stuno from student;

例2:INSERT INTO emp_back SELECT * FROM emp WHERE hiredate>'1982-01-01';

3) 利用load子句批量录入数据

语法:load data infile 文件地址 into table 表名;

 

例:

mysql> load data infile "I:\a.txt" into table t1;

a、在制表符处把行分解为列;

b、在新行处寻找行的边界

c、不跳过任何行前缀

 

7、插入数据的扩展

a).利用set插入数据

语法格式:Insert into 表名 set 列名1=值1, 列名1=值1,…;

insert into emp set empno=1111,ename=KOBE0,job=MANAGER,MGR=1000,HIREDATE=2019-01-01,SAL=2000,DEPTNO=10;

b).使用replace插入单条记录

Replace into 表名(列1,列2)  values(值1,值2);

replace into student(stuno,stuname) values(1002,'allen');

c).使用replace插入多条记录

Replace into 表名(列1,列2…)  values  (列1值1,列2值1…), (列1值2,列2值2…) ,...;

replace into student(stuno,stuname) values(1002,'allen'), (1003,'carte');

 

8、数据修改

语法格式

全部修改

Update 表名 set 列名1=值1, 列名2=值2,……;

局部修改

Update 表名 set 列名1=值1, 列名2=值2,……where 条件;

update student set stuno=0001;

update student set stuno=1001 where stuname='carte';

 

9、删除/截断

a).delete语法格式

全部删除

Delete from 表名;

局部删除

Delete from 表名 where 条件;

b).truncate语法格式

语法格式

Truncate [table] 表名;         →类似于全部删除

Qdelete语句和truncate语句的区别

Y:均能实现删除表中的全部数据

N1:delete语句可以实现带条件的部分删除,而truncate只能清除所有记录

N2:truncate清除数据后,再向表中插入记录时,自动增加的字段默认从1开始;而使用delete语句删除记录后,再向表中插入记录时,自增字段的值会从(之前该字段的最大值)+1

N3:使用delete语句每删除一行记录,都会记录在系统操作日志中;而truncate语句清除数据时,不会在日志中记录删除内容。若要清除表中所有的数据,truncate语句效率高于delete语句。

 

10、创建表

Create table [if not exists] 表名(

         列名1  数据类型1  列属性1,

         列名2  数据类型2  列属性3,

         ……

);

列属性

1)、默认值:default 默认值

2)、注释:commend 注释内容

3)、自动增序:auto_increment(只对整数类型有效,且要和主键一起使用

4)、约束

范例:

Create table if not exists t1(

         age char(3) default 23,

      Sid int comment'用户编号',

         Sname varchar(10) default'无名氏'

);

 

11、约束

约束是对表的强制规定

数据完成性:实体完整性、域完整性、参照完整性

实体完整性:保证表中的每一数据在表中是唯一的

域完整性:数据库中的必须满足某种特定的数据类型或约束。约束又分为强制域完整性越苏、限制格式或限制可能值得范围。

参照完整性:在输入/删除记录时,包含主关键字的主表 和 包含外关键字的外表

约束的分类:

完整性类型

约束类型

描述

约束对象

 

域完整性

Not null

列的值不能为空

 

Auto_increment

列值自动增加

Default

默认值

实体完整性

Primary key

主键约束,表示唯一,不能为空

Unique

唯一键,表示唯一,可为空

参照完整性

Foreign key

外键约束

表与表之间

 

 

 

作者:kerwin-chyl

文章链接:https:////www.cnblogs.com/kerwin-chyl

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

posted @ 2020-03-03 22:56  Kerwin_chyl  阅读(202)  评论(0编辑  收藏  举报