Mysql数据库和表的操作

本文转自:Java干活铺子

库的管理

创建数据库

create database [if not exists] 库名;

删除数据库

drop databases [if exists] 库名;

通用写法

drop databases if exists 旧数据库;
create databases 新数据库

表的管理

创建表

create table 表名(字段名1 类型[(宽度)] [约束条件] [comment '字段说明'],字段名2 类型[(宽度)] [约束条件] [comment '字段说明'],字段名3 类型[(宽度)] [约束条件] [comment '字段说明']
)[表的一些设置];

修改表

  1. 修改表名

    alter table 表名 rename 新表名;
    
  2. 复制表的结构

    create table 表名 like 被复制的表名;
    
  3. 复制表的结构和表中的数据

    create table 表名 [as] select 字段,... from 被复制的表 [where 条件];
    create table test13 as select * from test11;
    
  4. 修改表中字段

    # 添加列
    alter table 表名 add column 列名 类型 [列约束];# 修改列(2种方式区别:modify不能修改列名,change可以修改列名)
    alter table 表名 modify column 列名 新类型 [约束];
    或者
    alter table 表名 change column 列名 新列名 新类型 [约束];# 删除列
    alter table 表名 drop column 列名;
    

表中的约束条件

  1. not null:标识该字段不能为空

    mysql> create table test1(a int not null comment '字段a');
    Query OK, 0 rows affected (0.01 sec)
    
  2. default value:为该字段设置默认值,默认值为value

    mysql> create table test2(->   a int not null comment '字段a',->   b int not null default 0 comment '字段b'-> );
    
  3. primary key:标识该字段为该表的主键,可以唯一的标识记录,插入重复的会报错

    # 方式一
    mysql> drop table IF EXISTS test3;
    Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> create table test3(->   a int not null comment '字段a' primary key-> );
    Query OK, 0 rows affected (0.01 sec)mysql> insert into test3 (a) values (1);
    Query OK, 1 row affected (0.01 sec)mysql> insert into test3 (a) values (1);
    ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'# 方式二
    mysql> drop table IF EXISTS test4;
    Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> create table test4(->   a int not null comment '字段a',->   b int not null default 0 comment '字段b',->   primary key(a)-> );
    Query OK, 0 rows affected (0.02 sec)mysql> insert into test4(a,b) values (1,1);
    Query OK, 1 row affected (0.00 sec)mysql> insert into test4(a,b) values (1,2);
    ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
    
  4. foreign key:为表中的字段设置外键

    mysql> drop table IF EXISTS test6;
    Query OK, 0 rows affected (0.01 sec)mysql> drop table IF EXISTS test5;
    Query OK, 0 rows affected (0.01 sec)mysql>
    mysql> create table test5(->   a int not null comment '字段a' primary key-> );
    Query OK, 0 rows affected (0.02 sec)mysql>
    mysql> create table test6(->   b int not null comment '字段b',->   ts5_a int not null,->   foreign key(ts5_a) references test5(a)-> );
    Query OK, 0 rows affected (0.01 sec)mysql> insert into test5 (a) values (1);
    Query OK, 1 row affected (0.00 sec)mysql> insert into test6 (b,test6.ts5_a) values (1,1);
    Query OK, 1 row affected (0.00 sec)
    
  5. auto_increment:标识该字段的值自动增长(整数类型,而且为主键)

    mysql> drop table IF EXISTS test11;
    Query OK, 0 rows affected, 1 warning (0.00 sec)mysql>
    mysql> create table test11(->   a int not null AUTO_INCREMENT PRIMARY KEY comment '字段a',->   b int not null comment '字段b'-> );
    Query OK, 0 rows affected (0.01 sec)mysql>
    mysql> insert into test11(b) VALUES (10);
    Query OK, 1 row affected (0.00 sec)mysql> insert into test11(b) VALUES (20);
    Query OK, 1 row affected (0.00 sec)mysql> select * from test11;
    +---+----+
    | a | b  |
    +---+----+
    | 1 | 10 |
    | 2 | 20 |
    +---+----+
    2 rows in set (0.00 sec)
    

    注意:自增长列当前值存储在内存中,数据库每次重启之后,会查询当前表中自增列的最大值作为当前值,如果表数据被清空之后,数据库重启了,自增列的值将从初始值开始

Mysql数据库和表的操作相关推荐

  1. Mysql数据库大表归档操作

    由于公司的某个系统数据表过亿,考虑到数据表的压力.所以根据某个时间点对数据表做了一个归档.以下的操作是在当前的数据库新建表用于存储历史数据,然后再对生产表做一个清理操作.如果有条件的话可以把归档的数据 ...

  2. Ubuntu Mysql 数据库和表的操作   [2P]

    1.在终端启动:mysql -uroot -p密码 然后回车: 2.查看数据库的名字:SHOW DATABASES;: 3.选择一个数据库:USE test_STinfo;:(今天总是SELECT,惭 ...

  3. R操作MySQL数据库创建表、删除表、增删改查(CRUD)

    R操作MySQL数据库创建表.删除表.增删改查(CRUD) 关系数据中的数据是按照一定范式去存储的.当我们需要非常高级和复杂的Sql查询就可以使用关系数据库的数据资产.不光java和python可以容 ...

  4. mysql 横纵表转化_数据库MySQL横纵表相互转化操作实现方法

    本文实例讲述了MySQL横纵表相互转化操作实现方法.分享给大家供大家参考,具体如下: 先创建一个成绩表(纵表) create table user_score ( name varchar(20), ...

  5. MySQL数据库(表的CRUD基础操作(最常用))

    作者:渴望力量的土狗 博客主页:渴望力量的土狗的博客主页 专栏:MySQL数据库 工欲善其事必先利其器,给大家介绍一款超牛的斩获大厂offer利器--牛客网 点击免费注册和我一起刷题吧 目录 理解CR ...

  6. MySQL数据库和表名大小写敏感开关的打开办法

    背景:window 10系统安装了MySQL57,使用可视化操作工具Navicat Premium 12进行相关操作,一切比较顺利.但在建立数据库和表时,发现大小写命名不敏感.区分大小写输入,保存后默 ...

  7. MySQL 数据库 User表权限以及用户授权详解

    转载:https://blog.mimvp.com/article/27956.html MySQL 常用权限操作 1)本机登陆mysql: mysql -u root -p (-p一定要有):改变数 ...

  8. mysql 外键查询_mysql 外键查询(mysql数据库多表联查)

    mysql 外键查询(mysql数据库多表联查) 2020-07-24 11:51:00 共10个回答 查看方式主要是通过第三方工具或者是sql语句,主要有以下三种方式1:使用Navicateform ...

  9. MySQL数据库实验二 MySQL数据库和表

    一.实验项目: MySQL数据库和表. 二.实验目的 1.掌握MySQL数据库的创建.修改.删除和查看. 2.掌握表的创建.修改.删除和查看. 3.掌握表中记录的插入.修改和删除操作. 4.掌握完整性 ...

  10. MySQL数据库配置及高级操作

    MySQL数据库配置及高级操作 1 环境配置 1.1 MySQL安装与卸载 1.2 SQLyog安装 1.3 SQL简介 2 基本操作 2.1 DDL*(Data Definition Languag ...

最新文章

  1. 螃蟹学PHP设计模式之解释器模式
  2. git连接jenkins_基于 Jenkins 和 Kubernetes 的持续集成测试实践了解一下!
  3. 【一天一个shell命令】【cut】
  4. 内网通免广告_3D打印进军广告发光字领域,成为名副其实的智能打印工厂
  5. 数据库技术基础:查询优化相关知识笔记
  6. Java实验二猜数字游戏,JAVA-第2周实验-猜数字游戏
  7. Centos7 -bash: ifconfig : command not found
  8. sublime快捷键设置
  9. 【原创】SSAS-引用维度与多数据源、多数据源视图引发分区错误
  10. 阿里云云计算 15 在线实验--OSS的使用
  11. linux自动ping脚本,linux 自动ping ip的shell脚本
  12. 罗马音平假名中文可复制_200个中文常见姓氏的日语发音,再也不愁起日文名字啦!...
  13. 使用python对图片进行压缩
  14. 禁止ios版本上拉回弹效果
  15. stm32设置延时函数
  16. postgresql 修改id的自增起始数
  17. 记录DBeaver报SQL 错误 [1064] [42000]: #42000的一个坑
  18. Public Key Infrastructure
  19. matlab costas环,基于Matlab的Costas环仿真设计
  20. [生存志] 第102节 屈原既放赋离骚

热门文章

  1. 利率模型暗示美国股市是合理价值(仅做参考)
  2. 2019年宁波高职技能考计算机,2019年宁波职业技术学院高职提前招生考试综合素质测试大纲...
  3. java中跑批指的是什么_DB2几个问题的处理(三)
  4. android桌面adw,ADW Launcher
  5. ML for trading -cs7646-02
  6. 解决XCode 11 build error 编译错误 image not found
  7. 正态分布下贝叶斯决策的特例(三)
  8. 鸿蒙手机开发者活动,华为 12 月16 日举行鸿蒙 2.0 手机开发者 Beta 活动
  9. java8中class怎么用_如何在Java中使用Class T?
  10. 使用折半查找法查找数组中的元素