MySQL数据库

本节目录

一 库操作

  1、创建数据库

    1.1 语法

      CREATE DATABASE 数据库名 charset utf8;

    1.2 数据库命名规则

      可以由字母、数字、下划线、@、#、$

      区分大小写

      唯一性

      不能使用关键字如 create select

      不能单独使用数字

      最长128位

      # 基本上跟python或者js的命名规则一样

  2、数据库相关操作

    也是一些基本操作,和我们之前说的差不多。

  1. 1 查看数据库
  2. show databases;
  3. show create database db1;
  4. select database();
  5.  
  6. 2 选择数据库
  7. USE 数据库名
  8.  
  9. 3 删除数据库
  10. DROP DATABASE 数据库名;
  11.  
  12. 4 修改数据库
  13. alter database db1 charset utf8;

  关于库的内容,咱们就说这些吧,哈哈,有点少是吧,不是咱们的重点,来看下面的表操作~~~

二 表操作

  1、存储引擎

    存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制,关于存储引擎的介绍看我这篇博客:https://www.cnblogs.com/clschao/articles/9953550.html

  2、表介绍

    表相当于文件,表中的一条记录就相当于文件的一行内容,表中的一条记录有对应的标题,称为表的字段

    

    第一行的id、name2、age是字段,,其余的,一行内容称为一条记录。

  3、创建表

    3.1 建表语法    

  1. #语法:
  2. create table 表名(
  3. 字段名1 类型[(宽度) 约束条件],
  4. 字段名2 类型[(宽度) 约束条件],
  5. 字段名3 类型[(宽度) 约束条件]
  6. );
  7.  
  8. #注意:
  9. 1. 在同一张表中,字段名是不能相同
  10. 2. 宽度和约束条件可选、非必须,宽度指的就是字段长度约束,例如:char(10)里面的10
  11. 3. 字段名和类型是必须的
  1. mysql> create database db1 charset utf8;
  2.  
  3. mysql> use db1;
  4.  
  5. mysql> create table t1(
  6. -> id int,
  7. -> name varchar(50),
  8. -> sex enum('male','female'),
  9. -> age int(3)
  10. -> );
  11.  
  12. mysql> show tables; #查看db1库下所有表名
  13.  
  14. mysql> desc t1;
  15. +-------+-----------------------+------+-----+---------+-------+
  16. | Field | Type | Null | Key | Default | Extra |
  17. +-------+-----------------------+------+-----+---------+-------+
  18. | id | int(11) | YES | | NULL | |
  19. | name | varchar(50) | YES | | NULL | |
  20. | sex | enum('male','female') | YES | | NULL | |
  21. | age | int(3) | YES | | NULL | |
  22. +-------+-----------------------+------+-----+---------+-------+
  23.  
  24. mysql> select id,name,sex,age from t1;
  25. Empty set (0.00 sec)
  26.  
  27. mysql> select * from t1;
  28. Empty set (0.00 sec)
  29.  
  30. mysql> select id,name from t1;
  31. Empty set (0.00 sec)

代码示例

  1. mysql> insert into t1 values
  2. -> (1,'chao',18,'male'),
  3. -> (2,'sb',81,'female')
  4. -> ;
  5. mysql> select * from t1;
  6. +------+------+------+--------+
  7. | id | name | age | sex |
  8. +------+------+------+--------+
  9. | 1 | chao | 18 | male |
  10. | 2 | sb | 81 | female |
  11. +------+------+------+--------+
  12.  
  13. mysql> insert into t1(id) values
  14. -> (3),
  15. -> (4);
  16. mysql> select * from t1;
  17. +------+------+------+--------+
  18. | id | name | age | sex |
  19. +------+------+------+--------+
  20. | 1 | chao | 18 | male |
  21. | 2 | sb | 81 | female |
  22. | 3 | NULL | NULL | NULL |
  23. | 4 | NULL | NULL | NULL |
  24. +------+------+------+--------+

插入数据

  4、查看表结构

  1. mysql> describe t1; #查看表结构,可简写为:desc 表名
  2. +-------+-----------------------+------+-----+---------+-------+
  3. | Field | Type | Null | Key | Default | Extra |
  4. +-------+-----------------------+------+-----+---------+-------+
  5. | id | int(11) | YES | | NULL | |
  6. | name | varchar(50) | YES | | NULL | |
  7. | sex | enum('male','female') | YES | | NULL | |
  8. | age | int(3) | YES | | NULL | |
  9. +-------+-----------------------+------+-----+---------+-------+
  10.  
  11. mysql> show create table t1\G; #查看表详细结构,可加\G

查看表结构的方法

  5、MySQL的基础数据类型

    关于数据类型,看我这篇博客:https://www.cnblogs.com/clschao/articles/9959559.html

  6、表的完整性约束

    关于表的完整性约束,看我这篇博客:https://www.cnblogs.com/clschao/articles/9968396.html

    

   7、修改表 alter table

    下面的内容就不带着大家演示了,简单带大家看一下,都是固定的语法格式,按照这个写就行了,毫无逻辑可言,所以不做太多的演示,大家自己回去练一下:

    

  1. 语法:
  2. 1. 修改表名
  3. ALTER TABLE 表名
  4. RENAME 新表名;
  5.  
  6. 2. 增加字段
  7. ALTER TABLE 表名
  8. ADD 字段名 数据类型 [完整性约束条件…], #注意这里可以通过逗号来分割,一下添加多个约束条件
  9. ADD 字段名 数据类型 [完整性约束条件…];
  10. ALTER TABLE 表名
  11. ADD 字段名 数据类型 [完整性约束条件…] FIRST; #添加这个字段的时候,把它放到第一个字段位置去。
  12. ALTER TABLE 表名
  13. ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名;#after是放到后的这个字段的后面去了,我们通过一个first和一个after就可以将新添加的字段放到表的任意字段位置了。
  14.  
  15. 3. 删除字段
  16. ALTER TABLE 表名
  17. DROP 字段名;
  18.  
  19. 4. 修改字段
  20. ALTER TABLE 表名
  21. MODIFY 字段名 数据类型 [完整性约束条件…];
  22. ALTER TABLE 表名
  23. CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…]; #change比modify还多了个改名字的功能,这一句是只改了一个字段名
  24. ALTER TABLE 表名
  25. CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];#这一句除了改了字段名,还改了数据类型、完整性约束等等的内容

语法

    给一个字段添加外键属性的语句:alter table 表2名 add foreign key(表2的一个字段) references 表1名(表1的一个字段);

    注意一点:在mysql里面表名是不区分大小写的,如果你将一个名为t1的(小写的t1)改名为一个T1(大写的T1),是完全没用的,因为在数据库里面表名都是小写的。

  1. 示例:
  2. 1. 修改存储引擎
  3. mysql> alter table service
  4. -> engine=innodb;
  5.  
  6. 2. 添加字段
  7. mysql> alter table student10
  8. -> add name varchar(20) not null,
  9. -> add age int(3) not null default 22;
  10.  
  11. mysql> alter table student10
  12. -> add stu_num varchar(10) not null after name; //添加name字段之后
  13.  
  14. mysql> alter table student10
  15. -> add sex enum('male','female') default 'male' first; //添加到最前面
  16.  
  17. 3. 删除字段
  18. mysql> alter table student10
  19. -> drop sex;
  20.  
  21. mysql> alter table service
  22. -> drop mac;
  23.  
  24. 4. 修改字段类型modify
  25. mysql> alter table student10
  26. -> modify age int(3);
  27. mysql> alter table student10
  28. -> modify id int(11) not null primary key auto_increment; //修改为主键
  29.  
  30. 5. 增加约束(针对已有的主键增加auto_increment
  31. mysql> alter table student10 modify id int(11) not null primary key auto_increment;
  32. ERROR 1068 (42000): Multiple primary key defined
  33.  
  34. mysql> alter table student10 modify id int(11) not null auto_increment;
  35. Query OK, 0 rows affected (0.01 sec)
  36. Records: 0 Duplicates: 0 Warnings: 0
  37.  
  38. 6. 对已经存在的表增加复合主键
  39. mysql> alter table service2
  40. -> add primary key(host_ip,port);
  41.  
  42. 7. 增加主键
  43. mysql> alter table student1
  44. -> modify name varchar(10) not null primary key;
  45.  
  46. 8. 增加主键和自动增长
  47. mysql> alter table student1
  48. -> modify id int not null primary key auto_increment;
  49.  
  50. 9. 删除主键
  51. a. 删除自增约束
  52. mysql> alter table student10 modify id int(11) not null;
  53.  
  54. b. 删除主键
  55. mysql> alter table student10
  56. -> drop primary key;

简单示例

    

   8、复制表

    

    我们通过select查询出来的结果既有表结构又有表记录(数据),我们在重新创建一个和它一样的表的时候,之前用create还需要自己将表结构写好,然后把那些数据插入到新建的表中,很麻烦,那么我们就可以直接使用mysql提供的复制表的功能:(复制表用的很少昂,了解一下就行了)

    语法:复制表结构+记录 (key不会复制: 主键、外键和索引)
    mysql> create table new_service select * from service;#这句话的意思是你从service表里面查询出来的数据不要在屏幕上打印了,你直接给我的新表new_service

    我们自己写个例子:

      

      虽然我们不能复制key,但是我们可以给他加回去啊:alter table xxx

      

    只复制表结构,不要数据
    mysql> select * from service where 1=2; //条件为假,查不到任何记录,所以我们可以通过它来只复制表结构,看下面一句
    Empty set (0.00 sec)
    mysql> create table new1_service select * from service where 1=2;  #筛选数据的条件为假,那么只拿到了结构,并没有查询出任何的数据,所以做到了只复制表结构
    Query OK, 0 rows affected (0.00 sec)
    Records: 0 Duplicates: 0 Warnings: 0

    mysql> create table t4 like employees; #获取用like可以达到这个效果

 

回到顶部

MySQL的库表详细操作的更多相关文章

  1. MySQL之库表详细操作

    一 库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset utf8; 1.2 数据库命名规则 可以由字母.数字.下划线.@.#.$ 区分大小写 唯一性 不能使 ...

  2. MySQL库表详细操作

    昨天我们初始了MySQL,今天我们先从库表方面详细说一下具体操作 一.库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset utf8; 1.2 数据库命名规则 ...

  3. mysql之字段的修改,添加、删除,多表关系(外键),单表详细操作(增删改)

    字段的修改.添加和删除 create table tf1( id int primary key auto_increment, x int, y int ); #修改 alter table tf1 ...

  4. MySQL行(记录)的详细操作一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理

    MySQL行(记录)的详细操作 阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操作: ...

  5. day 37 MySQL行(记录)的详细操作

    MySQL行(记录)的详细操作   阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操 ...

  6. MySQL的库、表详细操作

    本节目录 一.库操作 二.表操作 三.行操作 一.库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset utf8; 1.2 数据库命名规则 可以由字母.数字. ...

  7. mysql 之库, 表的简易操作

    一. 库的操作 1.创建数据库 创建数据库: create database 库名 charset utf8;   charset uft8  可选项 1.2 数据库命名规范: 可以由字母.数字.下划 ...

  8. Mysql数据库 的库表简易操作

    一. 库的操作 1.创建数据库 创建数据库: create database 库名 charset utf8;   charset uft8  可选项 1.2 数据库命名规范: 可以由字母.数字.下划 ...

  9. mysql对库,表,数据类型的操作以及完整性约束

    一丶对库的操作 求救语法: help create database; 1.创建数据库 CREATE DATABASE 数据库名 charset utf8; 2.数据库的命名规则: 可以由字母.数字. ...

随机推荐

  1. Android开发如何定制framework层服务

    刚刚跨完年,新年第一篇文章,那么今天将对Android开发framework中间层的服务定制使用作个总结.首先我们先导入Android平台源码framework层的代码到开发工具eclipse中,代码 ...

  2. C#--动态加载DLL,通过反射调用参数,方法,窗体

    一些文章: 反射插件插件 http://bbs.csdn.net/topics/391950257?page=1 反射窗体 http://www.sufeinet.com/thread-2984-1- ...

  3. 一些baidu面经

    百度问的一些问题供参考: 1. epoll 和 select,epoll 两种模式,阻塞非阻塞: 2. 两个严格递增链表找出相同的元素组成新的链表: ref1   ref 3. 网络传输中如何传送一个 ...

  4. MyCAT源码分析——分析环境部署

    为了更好地了解mycat的原理,计划对mycat源码进行通读一遍,根据实际业务环境进行相关源码优化. 一.环境描述 操作系统:windows 10 x64 软件:jdk 1.7+   maven   ...

  5. 打通版微社区(5):部署DZ3.2

    参考官方帖子http://www.discuz.net/thread-3258186-1-1.html  这是第三方的帖子http://www.discuz.net/thread-3199850-1- ...

  6. [翻译] IGLDropDownMenu

    IGLDropDownMenu An iOS drop down menu with pretty animation. 一种iOS点击下拉菜单样式,动画效果很绚丽. Screenshot - 截图 ...

  7. Mvnw 简介

    Mvnw 简介  8月 17, 2016 |  Nix.Huang 背景 maven是一款非常流行的java项目构建软件,它集项目的依赖管理.测试用例运行.打包.构件管理于一身,是我们工作的好帮手,m ...

  8. Mysql进阶-day2

    Mysql cmake方式安装 1.卸载原有mysql下载MySQL安装包 [root@localhost ~]# yum remove mysql* -y [root@localhost ~]# m ...

  9. 深入浅出SharePoint——定制保存Item按钮

    <script type="text/javascript" src="/_layouts/style/jquery-1.4.4.min.js">& ...

  10. source insight设置问题 [问题点数:20分,结帖人leecapacity]

    http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763104687270e54f7327d818c027fa3cf1fd5791d1c05 ...