语法:mysql -h ip地 -u用户名 -p密码html
例:mysql -h 59.34.56.11 -u root -p rootmysql
语法:SHOW [FULL] TABLES [{FROM|IN} 数据库名] [LIKE 规则 | WHERE 条件];sql
full:以完整格式显示表的名称和类型数据库
例:show full tables from neusoft1 where tables_in_neusoft1 = 'student1';spa
show tables like '%s%';日志
语法:DESC 表面 [列名];htm
DESC:DESCRIBE对象
例:DESC student1 stuno;blog
语法:SHOW CREATE TABLE student1;ip
语法: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);
语法:alter table 表名 drop [column] 列名;
例:ALTER TABLE student DROP asid;
语法:alter 表名 modify [column] 列名 数据类型;
[column]可写可不写,不可一次修改多个列属性
如修改后的长度<原定义的长度,可能形成精度损失/数据更改(如小数位数减小,数据截断)
语法:Alter table 表名 change 原列名 新列名 数据类型;
alter table student1 change adress newadress char(10);
alter table student1 change newadress newadress varchar(20);
在修改列名的时候,也能够修改属性,或者只修改属性不修改列名
语法:Alter table 原表名 rename [to] 新表名;
To可写可不写,没有影响
语法格式: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);
语法: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');
语法:insert into 表名(列1,列2,…..) select 列1,列2,….. from 表名;
例:Insert into emp(empno) select stuno from student;
语法:load data infile 文件地址 into table 表名;
例:
mysql> load data infile "I:\a.txt" into table t1; |
a、在制表符处把行分解为列;
b、在新行处寻找行的边界
c、不跳过任何行前缀
语法格式: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;
Replace into 表名(列1,列2) values(值1,值2);
replace into student(stuno,stuname) values(1002,'allen');
Replace into 表名(列1,列2…) values (列1值1,列2值1…), (列1值2,列2值2…) ,...;
replace into student(stuno,stuname) values(1002,'allen'), (1003,'carte');
语法格式
所有修改 |
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';
所有删除 |
Delete from 表名; |
局部删除 |
Delete from 表名 where 条件; |
语法格式 |
Truncate [table] 表名; →相似于所有删除 |
Q:delete语句和truncate语句的区别?
Y:均能实现删除表中的所有数据
N1:delete语句能够实现带条件的部分删除,而truncate只能清除全部记录
N2:truncate清除数据后,再向表中插入记录时,自动增长的字段默认从1开始;而使用delete语句删除记录后,再向表中插入记录时,自增字段的值会从(以前该字段的最大值)+1
N3:使用delete语句每删除一行记录,都会记录在系统操做日志中;而truncate语句清除数据时,不会在日志中记录删除内容。若要清除表中全部的数据,truncate语句效率高于delete语句。
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'无名氏'
);
约束是对表的强制规定
数据完成性:实体完整性、域完整性、参照完整性
实体完整性:保证表中的每一行数据在表中是惟一的
域完整性:数据库中的列必须知足某种特定的数据类型或约束。约束又分为强制域完整性越苏、限制格式或限制可能值得范围。
参照完整性:在输入/删除记录时,包含主关键字的主表 和 包含外关键字的外表
约束的分类:
完整性类型 |
约束类型 |
描述 |
约束对象 |
域完整性 |
Not null |
列的值不能为空 |
列 |
Auto_increment |
列值自动增长 |
||
Default |
默认值 |
||
实体完整性 |
Primary key |
主键约束,表示惟一,不能为空 |
行 |
Unique |
惟一键,表示惟一,可为空 |
||
参照完整性 |
Foreign key |
外键约束 |
表与表之间 |
Create table if not exists t3(
age char(3) not null,
Sid int comment'用户编号',
Sname varchar(10) default'无名氏'
);
插入值:
mysql> insert into t3(sid,sname) values(1001,'byd');
ERROR 1364 (HY000): Field 'age' doesn't have a default value
mysql> insert into t3(age,sid,sname) values(null,1001,'byd');
ERROR 1048 (23000): Column 'age' cannot be null
mysql> insert into t3(age,sid,sname) values(105,1001,'byd');
Query OK, 1 row affected (0.01 sec)
语法:alter table 表名 modify 列名 数据类型 not null;
Create table if not exists t4(
Sid int comment'用户编号',
Sname varchar(10) default'无名氏'
);
alter table t4 modify Sid int not null comment '用户编号';
语法:Alter table 表名 modify 列名 数据类型 null;
一个表中通常只有一个主键,主键约束不可为空,自增序必须和主键一块儿使用
Create table if not exists t6(
Sid int primary key auto_increment comment'用户编号',
Sname varchar(10) default'无名氏',
age char(3) not null
);
mysql> insert into t6(sname,age) values('BRA',26);
Create table if not exists s6(
Sid int,
Sname varchar(10) default'无名氏',
age char(3) not null,
constraint pk_s6 primary key (Sid,Sname)
);
语法格式:alter table 表名 add constraint 约束名 primary key(列名1,列名2,…);
alter table emp add constraint pk_emp primary key (empno,ename);
alter table emp add constraint uk_emp unique key (mgr);
语法:Alter table 表名 drop primary key;
Alter table emp drop primary key;
做者:kerwin-chyl
文章连接:https:////www.cnblogs.com/kerwin-chyl
本文版权归做者和博客园共有,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接,不然保留追究法律责任的权利。