I、表操作

一、创建表

基本语法如下:

create table 表名(

列名 类型 是否可以为空,

列名 类型 是否可以为空

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

下面这两个变量是:

ENGINE :存储引擎

charset:字符集

1、是否可空,null表示空,非字符串

not null - 不可空

null - 可空

2、默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动添加默认值

create table tb1(

nid int not null defalut 2,

num int not nul

)

3、自增,如果为某列设置自增列,插入数据时无需设置此列,默认将自增(表中只能有一个自增列

create table tb1(

nid int not null auto_increment primary key,

num int null

)

create table tb1(

nid int not null auto_increment,

num int null,

index(nid)

)

注意:

(1)对于自增列,必须是索引(含主键)

(2)对于自增可以设置步长和起始值

show session variables like 'auto_inc%';

set session auto_increment_increment=2;

set session auto_increment_offset=10;

shwo global variables like 'auto_inc%';

set global auto_increment_increment=2;

set global auto_increment_offset=10;

4、主键,一种特殊的唯一索引,不允许有空值,如果主键使用单个列,则它的值必须唯一,如果是多列,则其组合必须唯一。

create table tb1(

nid int not null auto_increment primary key,

num int null

)

create table tb1(

nid int not null,

num int not null,

primary key(nid,num)

)

5、外键,一个特殊的索引,只能是指定内容

creat table color(

nid int not null primary key,

name char(16) not null

)

create table fruit(

nid int not null primary key,

smt char(32) null ,

color_id int not null,

constraint fk_cc foreign key (color_id) references color(nid)

)

二、删除表

drop table 表名

三、清空表

表还存在,表内容清空

delete from 表名 速度慢,能回滚。

truncate table 表名 速度快,不能回滚。

四、修改表

1、添加列

(1)添加新的一列,默认添加到最后面

alter table 表名 add 列名 类型

(2)添加新的一列,位于指定列的后面/前面

alter table 表名 add 列名 类型 after/before 指定列列名;

(3)添加新的一列,位于第一列

alter table 表名 add 列名 类型 first;

2、删除列

alter table 表名 drop column 列名

3、修改列

(1)只修改列的类型

alter table 表名 modify column 列名 类型; -- 类型

(2)既修改列名也修改类型

alter table 表名 change 原列名 新列名 类型; -- 列名,类型

4、添加主键

alter table 表名 add primary key(列名);

5、删除主键

alter table 表名 drop primary key;

alter table 表名 modify 列名 int, drop primary key;

6、添加外键

alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);

7、删除主键

alter table 表名 drop foreign key 外键名称

8、修改默认值

ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;

9、删除默认值

ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;

实例:

show tables; #展示当前库下的所有表名

SELECT * from user_info; #查看表的信息

alter table user_info add class int(4) #为表添加一新的一列,默认添加到最后面。

10、修改表名字,rename法

--语法: rename table 原表名 to 新表名;

--更改user_infor表为user。

mysql> rename table user_info to user;

II、表内容操作

一、增

语法:insert into 表 (列名,列名...) values (值,值,值...)

1、插入单条数据

insert into 表 (列名,列名...) values (值,值,值...)

2、插入多条数据

insert into 表 (列名,列名...) values (值,值,值...),(值,值,值...)

3、插入另一条语句的查询结果

insert into 表 (列名,列名...) select 列名,列名... from 表

二、删

语法:delete from 表

delete from 表;

delete from 表 where id=1;

三、改

语法:update 表 set 列名 = '更改数值' where id>1 (where后携带条件)

update 表 set name = 'nick' where id>1

四、查

语法:select * from 表

select * from 表

select * from 表 where id > 1

select nid,name,gender as gg from 表 where id > 1

注:as用做别名,可省略

五、条件

语法:select * from 表 where id > 1

1、多个条件(and)

select * from 表 where id > 1 and name != 'nick' and num = 12; # 多个条件

2、id在5到16之间(between ... and)

select * from 表 where id between 5 and 16; # id在5到16之间

3、id在元祖中(in)

select * from 表 where id in (11,22,33); # id在元祖中

4、id不在元祖中(not in)

select * from 表 where id not in (11,22,33); # id不在元祖中

5、id在查询结果中

select * from 表 where id in (select nid from 表); # id在查询结果中

六、通配符

语法:select * from 表 where name like '_n%'

1、ni开头的所有(多个字符串)

select * from 表 where name like 'ni%' # ni开头的所有(多个字符串)

2、s开头的所有(一个字符)

select * from 表 where name like 's_'

七、限制

语法:select * from 表 limit 9,5;

1、前n行

select * from 表 limit 5; # 前5行

2、从第n行开始的m行

select * from 表 limit 9,5; # 从第9行开始的5行

select * from 表 limit 5 offset 9 # 从第9行开始的5行

八、排序

语法:select * from 表 order by 列1 desc,列2 asc

注:asc(升序)、desc(降序),默认升序

1、根据 “列” 从小到大排列

select * from 表 order by 列 asc

2、根据 “列” 从大到小排列

select * from 表 order by 列 desc

3、根据 “列1” 从大到小排列,如果相同则按列2从小到大排序

select * from 表 order by 列1 desc,列2 asc

九、分组

语法:select num from 表 group by num

select num from 表 group by num # 根据num分组

select num,nid from 表 group by num,nid # 根据num和nid分组

select num,nid from 表 where nid > 10 group by num,nid order nid desc

select num,nid,count(*),sum(score),max(score),min(score) from 表 group by num,nid # 内置函数

select num from 表 group by num having max(id) > 10 # 前面计算的结果交由后面处理

注:

(1)group by必须在where之后,order by之前

十、连表

语法:inner join . on(内连接)、left join . on(左连接)、right join . on(右连接)

1、无对应关系则不显示(where)

select A.num, A.name, B.name

from A,B

Where A.nid = B.nid

2、无对应关系则不显示(inner join ... on)

select A.num, A.name, B.name

from A inner join B

on A.nid = B.nid

3、A表所有显示,如果B中无对应关系,则值为null(left join ... on)

select A.num, A.name, B.name

from A left join B

on A.nid = B.nid

4、B表中所有显示,如果B中无对应关系,则值为null(right join ... on)

select A.num, A.name, B.name

from A right join B

on A.nid = B.nid

十一、组合

语法:union、union all

1、组合,自动处理重合

select nickname

from A

union

select name

from B

2、组合,不处理重合

select nickname

from A

union all

select name

from B

元祖数据mysql_MySQL数据库——表操作相关推荐

  1. CO内外部记账数据对应数据库表(COSP、COSS、COEP、COBK、TBO01)和业务场景操作示例

    文章目录 一.CO记账数据来源的业务场景 二.业务场景示例 2.1 业务场景一示例 2.1.1 FI财务记账计入费用 2.1.2 费用型采购订单计入费用 2.2 业务场景二示例 三.记账数据对应数据库 ...

  2. qt mysql怎么选表_Qt的Mysql数据库表操作(1)

    Qt中的QSqlDatabase.QSqlQueryModel.QSqlRecord.QSqlTableModel等类为我们提供了快速开发数据库的方式,支持多种数据库连接,例如oracle,db2,M ...

  3. 数据库表操作、数据类型及完整性约束

    数据库表操作.数据类型及完整性约束 库操作补充 数据库命名规则: 可以由字母.数字.下划线.@.#.$ 区分大小写 唯一性 不能使用关键字如 create select 不能单独使用数字 最长128位 ...

  4. 导入excel和json数据到数据库表中

    导入excel和json数据到数据库表中 1.清除表中数据 2.从excel中导入数据 3.导入JSON数据到表中 Mysql:5.7.33 工具:navicat 12 在所有操作之前先将数据库备份, ...

  5. MYSQL数据库表操作pdf

    <MYSQL数据库表操作pdf> 下载地址: 网盘下载 转载于:https://www.cnblogs.com/long12365/p/9731023.html

  6. DBeaver线下数据导入数据库表

    DBeaver线下数据导入数据库表 一.建表 create table java_etl_data( tablename varchar(25) null, field varchar(25) nul ...

  7. 【Python】05-列表、元祖、字典、集合操作大全:建议收藏

    数据结构基本上就是--它们是可以处理一些 数据 的 结构 .或者说,它们是用来存储一组相关数据的. 在Python中有四种内建的数据结构--列表.元组和字典,集合.我们将会学习如何使用它们,以及它们如 ...

  8. python 字典排序 最大键_Python中的列表、元祖、字典、集合操作大全

    来源:http://suo.im/5HPGNT 在Python中有4种内建的数据结构:列表.元组.字典.集合.今天我们将会学习如何使用它们,以及它们如何使编程变得简单. 一.列表list 是处理一组有 ...

  9. 05-Python—列表、元祖、字典、集合操作大全:建议收藏

    数据结构基本上就是--它们是可以处理一些 数据 的 结构 .或者说,它们是用来存储一组相关数据的. 在Python中有四种内建的数据结构--列表.元组和字典,集合.我们将会学习如何使用它们,以及它们如 ...

最新文章

  1. nginx+lua实现上传文件到OSS
  2. Java字符串处理技巧
  3. 【redis】liunx安装redis
  4. HTML5 随机弹跳的小球
  5. istringstream和ostringstream
  6. Mysql表分区的选择与实践小结
  7. Java-For循环
  8. wp7 --缓动动画
  9. 最全攻略:利用LightSeq加速你的深度学习模型
  10. inline,block 和 inline-block 的区别
  11. CS224N刷题——Assignment3.2_Recurrent neural nets for NER
  12. 记录linux deploy如何进行分区安装centos7
  13. 联合舰队的覆灭(7)
  14. 遗传算法python与matlab_遗传算法之Python实现代码
  15. Android图片之svg
  16. FastReport for Delphi
  17. vscode 插件-常用插件
  18. 学生成绩等级用c语言,C语言实现学生成绩等级划分的方法实例
  19. ADC类型和技术指标
  20. 自习室风口!使用网上预约系统助力自习室预约

热门文章

  1. ​编译安装subversion-1.8.5整合apache
  2. NVIDIA Physix Unity3D
  3. MySQL数据库datetime类型不能为空值的问题
  4. Magento调用静态块 static block
  5. 全国计算机二级c 笔记,[IT认证]全国计算机等级考试二级C语言笔记.doc
  6. 信息学奥赛一本通 1033:计算线段长度 | OpenJudge NOI 1.3 16
  7. Beauty Of Unimodal Sequence(HDU-6592)
  8. 最短路(HDU-2544)
  9. 计算分数的浮点数值(信息学奥赛一本通-T1010)
  10. word-break 对一个字符串根据给出的字典判断是否可以根据字典切分(DP问题)