数据库的基本流程就是先看你的数据库中的库都是哪些:show databases;

然后再进入相应的库进行操作  :  use+进入的库/表 切换路径

查看这个库内的所有的表:

  

show tabales;

查看这个表内的所有的所有信息:

  

select * from +表名;

数据表基本

1、创建表

1
2
3
4
create table 表名(
    列名  类型  是否可以为空,
    列名  类型  是否可以为空
)ENGINE=InnoDB DEFAULT CHARSET=utf8
 是否可空,null表示空,非字符串
not null - 不可空
null - 可空

是否可以为空

        默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动添加默认值
create table tb1(
nid int not null defalut 2,
num int not null
)

默认值

       自增,如果为某列设置自增列,插入数据时无需设置此列,默认将自增(表中只能有一个自增列)
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;

自增

        主键,primary key 一种特殊的唯一索引,不允许有空值,如果主键使用单个列,则它的值必须唯一,如果是多列,则其组合必须唯一。
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)
)

主键

2、删除表

1
drop table 表名

3、清空表

1
2
delete from 表名
truncate table 表名

4、修改表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
添加列:alter table 表名 add 列名 类型
删除列:alter table 表名 drop column 列名
修改列:
        alter table 表名 modify column 列名 类型;  -- 类型
        alter table 表名 change 原列名 新列名 类型; -- 列名,类型 
  
添加主键:
        alter table 表名 add primary key(列名);
删除主键:
        alter table 表名 drop primary key;
        alter table 表名  modify  列名 int, drop primary key;
  
添加外键:alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
删除外键:alter table 表名 drop foreign key 外键名称
  
修改默认值:ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
删除默认值:ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;

 

改一个表中的列:

修改列:
alter table 表名 modify column 列名 类型; -- 类型
alter table 表名 change 原列名 新列名 类型; -- 列名,类型  alter table t1 modify name char(10); 直接把你的t1 表中的name列的char给修改为10个字节的 其中的column可以省略不写 给一个列改名字:
alter table t1 change name NAME char(10); 把t1表中的name列的名字改为NAME

表内容操作

查看一个表的具体的信息:desc+表名

1、增

1
2
3
insert into 表 (列名,列名...) values (值,值,值...)
insert into 表 (列名,列名...) values (值,值,值...),(值,值,值...)
insert into 表 (列名,列名...) select (列名,列名...) from 

Insert into t1(id,name) values(1,’老王’)   表示 给t1这个表中的 id和name列分别插入加入数据 1 和老王 也可以省略into 不写

2、删

1
2
delete from 
delete from 表 where id=1 and name'alex'

                              delete from+表         这个清空表之后下次再增加就会从以后的基础上增加

                               truncate table +表   这个清空表之后后就会从1 开始增加

3、改

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

4、查

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

主键:

  主键是为了保证数据的唯一性而设置的

  一张表只能有一个主键

  一个主键可以用两个列合起来做一个主键

  

CREATE TABLE t1(
nid int(11) NOT NULL AUTO_INCREMENT ,
pid int(11) NOT NULL ,
num int(11) NOT NULL ,
PRIMARY KEY(pid,num) //把这个两个列设置为主键
)ENGINE = INNODB DEFAULT CHARSET=UTF8;

上面就是把t1表中的pid和num列设置为主键 并且主键不可以为空

外键:

外键好比就是你的表格中有一些人物的属性有很多人物的属性是一样的 或者这些属性是很多人的是重复的  那么如果都写上汉字比如‘中共中央北京市海定区 五道口职业技术学院’这个属性很多人具有的话,你再存储的时候也要每一个人都要写吗?不,如果每个人都写那么就会很占内存 因为占用好多字节,我们可以建立一个表格把这些属性存放起来 然后就给这些属性  设定id值  把这个id值和人物的表格关联绑定,然后 如果具有的属性就用属性代表的id来表示就节省很多内存   这就是外键由来,

外键的创建:

  在创建表的时候就创建外键:先创建属性表 (主表)后创建字表就是要绑定外键的表

   在表内创建:

  

constraint +外键名字+foreign key(本表的id) +references 从表名字(主表id列)

    必须要给你的外键起名字 同一个数据库中的外键的名字不可以相同

  同一个表也可以建立多个外键 就是把不同的列建立不同的外键

#被关联表
create table class(
id int auto_increment primary key,
name varchar(32)
)engine=innodb default charset=utf8; #关联表
create table student(
id int auto_increment primary key,
name varchar(32),
class_id int,
constraint fk_stu_class foreign key(class_id) references class(id) # 这个是指定它的外键是自己建立的一个列
)engine=innodb default charset=utf8; 这就是在创建表的时候同时把外键创立,constraint +外键名字+ foreign key +(本表的要关联的列一般都是id列) +references +从表名(父表的id列) 如果这个时候建立了外键那么 主表再删除的时候就不能了 因为它本身是有关联的需要先删除关联表

外键的关联必须是两个都是相同的 类型 不能一个是bigint 一个是int 两个列都应该是相同的类型

修改自增的起始值:

修改一个表id自增的起始值就是让他们可以直接跳到每一个我们想要的起始值

比如:这样可以直接从1调到20插入

Alter table +表名 Auto_increment = 你想要设置的从第几位开始的id

Alter table t1 auto_increment = 20;这个是把你的要自增的id设置从20开始增加

但是只可以增大你的设置的id

步长:

不仅仅可以设置自增的起始值还可以设置增加的步长

你在设置自增的值的时候其实也可以设置步长增加的  但是mysql的自增步长设置,只能分为会话步长和全局步长,会话步长就是这次你的登陆的设置  别人的设置没有或者别人的登陆是没有作用的  会话就是你自己的这一次登陆才能生效,而全局步长是设置之后以后的所有都遵循这个设置的,不论那一次登陆 无论谁登陆

MySQL: 自增步长

基于会话级别:

show session variables like 'auto_inc%'; 查看全局变量

set session auto_increment_increment=2;   设置会话步长

# set session auto_increment_offset=10;

基于全局级别:

show global variables like 'auto_inc%';       查看全局变量

set global auto_increment_increment=2;         设置会话步长

# set global auto_increment_offset=10;

你在设置自增的值的时候其实也可以设置步长增加的  但是mysql的自增步长设置,只能分为会话步长和全局步长,会话步长就是这次你的登陆的设置  别人的设置没有或者别人的登陆是没有作用的  会话就是你自己的这一次登陆才能生效,而全局步长是设置之后以后的所有都遵循这个设置的,不论那一次登陆 无论谁登陆

MySQL: 自增步长

                            基于会话级别:

                                     show session variables like 'auto_inc%'; 查看全局变量

                            set session auto_increment_increment=2;   设置会话步长

                                     # set session auto_increment_offset=10;

                            基于全局级别:

                                     show global variables like 'auto_inc%';       查看全局变量

                             set global auto_increment_increment=2;         设置会话步长

                                     # set global auto_increment_offset=10;

数据类型:

MySQL的数据类型大致分为:数值、时间和字符串

一般有bigint int 只不过是表示的数字的大小值不一样而已 bigint表示的值比较多

    

mysql 的增删改查的更多相关文章

  1. Java连接MySQL数据库增删改查通用方法

    版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...

  2. MySQL数据库(增删改查语句)

    MySQL数据库(增删改查语句)一.登录数据库:---->  mysql -uroot -proot;(对应用户名和密码)二.SQL语句:    数据定义语言DDL  用来定义数据库.表.列,关 ...

  3. python操作mysql数据库增删改查的dbutils实例

    python操作mysql数据库增删改查的dbutils实例 # 数据库配置文件 # cat gconf.py #encoding=utf-8 import json # json里面的字典不能用单引 ...

  4. Asp.Net操作MySql数据库增删改查

    Asp.Net操作MySql数据库增删改查,话不多说直接步入正题.git源码地址:https://git.oschina.net/gxiaopan/NetMySql.git  1.安装MySQL数据库 ...

  5. Mysql 的 增删改查

    mysql的增删改查 1:新建数据库 create database 数据库名 [其他选项]; 2:新建数据表 create table students ( id int unsigned not ...

  6. MySQL之增删改查之

    MySQL之增删改查   前言:以下是MySQL最基本的增删改查语句,很多IT工作者都必须要会的命令,也是IT行业面试最常考的知识点,由于是入门级基础命令,所有所有操作都建立在单表上,未涉及多表操作. ...

  7. MySql之增删改查 · YbWork's Studio

    前提:在进行"增删改查"的操作之前,先建立一个包含数据表student的数据库(具体操作可以见MySQL之最基本命令): 1."增"--添加数据 1.1 为表中 ...

  8. 使用MySQL练习增删改查时因为版本问题出现连接错误

    使用MySQL练习增删改查时出现连接错误,错误提示如下: 2020-02-19 19:53:51.088 ERROR 16328 --- [reate-249798694] com.alibaba.d ...

  9. koa+mysql实现增删改查-全栈之路(001)

    Date: 2020-4-23 以前很少写文章,从今天开始我要挑战一下自己,连续输出100篇技术类文章.这100篇文章我尽量以实战案例为主. 如果你觉得本文还不错,记得关注或者给个 star,你们的赞 ...

  10. (转)mysql的增删改查

    MySQL数据库的增删改查. 1,首先启动mysql数据库的服务,在运行的窗口中输入:net start mysql,这样,就可 以启动mysql数据库的服务,同理,输入net stop mysql, ...

随机推荐

  1. php array_flip() 删除数组重复元素

    在PHP中,用于删除数组中重复元素有一个可用的函数,那就是 array_unique(), 但是它并不是一个最高效的方法,使用array_flip() 函数将比array_uniqure()在速度上高 ...

  2. vue遇见better-scroll

    better-scroll better-scroll 是一款重点解决移动端(现已支持 PC 端)各种滚动场景需求的插件.它的核心是借鉴的 iscroll 的实现,它的 API 设计基本兼容 iscr ...

  3. memcached 学习笔记 4

    memcached真实项目中的应用 1 缓存式的Web应用程序架构 有了缓存的支持,我们可以在传统的app层和db层之间加入cache层,每个app服务器都可以绑定一个mc, 每次数据的读取都可以从m ...

  4. Windows Azure上的大数据服务: HDInsight的介绍

    这个视频介绍了目前非常流行的大数据处理框架Hadoop的Windows Azure上的实现:HDInsight,以及利用MapReduce来对大数据进行分析,利用Hive进行查询,利用客户端Power ...

  5. H5微信自定义分享链接(设置标题+简介+图片)

    起源:最近公司在做招募广告的html5页面,然后做出来后,产品提出一个问题,需要分享出去的链接是卡片形式,内容也要自己定义,这下就难到我了,因为是第一次遇到这种需求,果断百度,然而,我就像大家一样,看 ...

  6. c# 删除文件,清理删除文件

    c# 删除程序占用的文件,清理删除文件,彻底删除文件,解除文件占用 文件打开时,以共享读写模式打开 FileStream inputStream = new FileStream(name, File ...

  7. DateReader读取数据

    DateReader对象提供了用循序的.只读的方式读取Command对象获取的数据结果集正是因为DateReader是以循序的方法连续地读取数据,所以DateReader会以独占的方式打开数据库连接. ...

  8. 从MySQL到ORM(三):连接、存储过程和用户权限

    一.联结表 数据仍使用前文中的数据. 1.子查询 作为子查询的SELECT语句只能查询单个列.企图检索多个列将返回错误. -- 作为查询条件使用 -- 查看TNT2订单对应的客户ip(order表) ...

  9. windows emacs 中拷贝文件

    cp d:/workspace/LoginWeb/target/LoginWeb.war D:/Program\ Files/apache-tomcat-7.0.78/webapps/LoginWeb ...

  10. Redis概述与安装

    一.什么是Redis ​ 由c语言编写的,以键值对的形式存储的数据库. 缓存技术(驻留在内存中) ​ key:value ​ 支持5种数据类型: ​ String ​ Hash(哈希表) ​ list ...