数据表基本

1、创建表

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;

主键

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

外键

外键,一个特殊的索引,只能是指定内容           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)           )

2、删除表

drop table 表名

3、清空表

delete from 表名

truncate table 表名

4、修改表

添加列: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;

5、基本数据类型

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

bit[(M)]           二进制位(101001),m表示二进制位的长度(1-64),默认m=1       tinyint[(m)] [unsigned] [zerofill]

           小整数,数据类型用于保存一些范围的整数数值范围:           有符号:               -128 ~ 127.           无符号:~ 255           特别的: MySQL中无布尔值,使用tinyint(1)构造。       int[(m)][unsigned][zerofill]           整数,数据类型用于保存一些范围的整数数值范围:               有符号:                   -2147483648 ~ 2147483647               无符号:~ 4294967295           特别的:整数类型中的m仅用于显示,对存储范围无限制。例如: int(5),当插入数据2时,select 时数据显示为: 00002       bigint[(m)][unsigned][zerofill]           大整数,数据类型用于保存一些范围的整数数值范围:               有符号:                   -9223372036854775808 ~ 9223372036854775807               无符号:~  18446744073709551615       decimal[(m[,d])] [unsigned] [zerofill]           准确的小数值,m是数字总个数(负号不算),d是小数点后个数。 m最大值为65,d最大值为30。

           特别的:对于精确数值计算时需要用此类型                  decaimal能够存储精确值的原因在于其内部按照字符串存储。       FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]           单精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。               无符号:                   -3.402823466E+38 to -1.175494351E-38,                   1.175494351E-38 to 3.402823466E+38               有符号:                   1.175494351E-38 to 3.402823466E+38

           **** 数值越大,越不准确 ****       DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]           双精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。               无符号:                   -1.7976931348623157E+308 to -2.2250738585072014E-308                   2.2250738585072014E-308 to 1.7976931348623157E+308               有符号:                   2.2250738585072014E-308 to 1.7976931348623157E+308           **** 数值越大,越不准确 ****

       char (m)           char数据类型用于表示固定长度的字符串,可以包含最多达255个字符。其中m代表字符串的长度。           PS: 即使数据小于m长度,也会占用m长度       varchar(m)           varchars数据类型用于变长的字符串,可以包含最多达255个字符。其中m代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。           注:虽然varchar使用起来较为灵活,但是从整个系统的性能角度来说,char数据类型的处理速度更快,有时甚至可以超出varchar处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡

       text           text数据类型用于保存变长的大字符串,可以组多到65535 (2**16 − 1)个字符。

       mediumtext           A TEXT column with a maximum length of 16,777,215 (2**24 − 1) characters.

       longtext           A TEXT column with a maximum length of 4,294,967,295 or 4GB (2**32 − 1) characters.

       enum           枚举类型,           An ENUM column can have a maximum of 65,535 distinct elements. (The practical limit is less than 3000.)           示例:               CREATE TABLE shirts (                   name VARCHAR(40),                   size ENUM('x-small', 'small', 'medium', 'large', 'x-large')               );               INSERT INTO shirts (name, size) VALUES ('dress shirt','large'), ('t-shirt','medium'),('polo shirt','small');

       set           集合类型           A SET column can have a maximum of 64 distinct members.           示例:               CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));               INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');

       DATE           YYYY-MM-DD(1000-01-01/9999-12-31)

       TIME           HH:MM:SS('-838:59:59'/'838:59:59')

       YEAR           YYYY(1901/2155)

       DATETIME

           YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59    Y)

       TIMESTAMP

           YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)

表内容操作

1、增

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

2、删

delete from 表delete from 表 where id=1 and name='zzz'

3、改

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

4、查

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

5、其他

a、条件   select * from 表 where id > 1 and name != 'alexgat' and num = 12;

   select * from 表 where id between 5 and 16;

   select * from 表 where id in (11,22,33)   select * from 表 where id not in (11,22,33)   select * from 表 where id in (select nid from 表)

b、通配符   select * from 表 where name like 'ale%'  - ale开头的所有(多个字符串)   select * from 表 where name like 'ale_'  - ale开头的所有(一个字符)

c、限制   select * from 表 limit 5;            - 前5行   select * from 表 limit 4,5;          - 从第4行开始的5行   select * from 表 limit 5 offset 4    - 从第4行开始的5行

d、排序   select * from 表 order by 列 asc              - 根据 “列” 从小到大排列   select * from 表 order by 列 desc             - 根据 “列” 从大到小排列   select * from 表 order by 列1 desc,列2 asc    - 根据 “列1” 从大到小排列,如果相同则按列2从小到大排序

e、分组   select num from 表 group by num   select num,nid from 表 group by 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

   特别的:group by 必须在where之后,order by之前

f、连表   无对应关系则不显示   select A.num, A.name, B.name   from A,B   Where A.nid = B.nid

   无对应关系则不显示   select A.num, A.name, B.name   from A inner join B   on A.nid = B.nid

   A表所有显示,如果B中无对应关系,则值为null   select A.num, A.name, B.name   from A left join B   on A.nid = B.nid

   B表所有显示,如果B中无对应关系,则值为null   select A.num, A.name, B.name   from A right join B   on A.nid = B.nid

g、组合   组合,自动处理重合   select nickname   from A   union   select name   from B

   组合,不处理重合   select nickname   from A   union all   select name   from B

识别图中二维码,获取python全套视频资料

数据库之MySQL(二)的更多相关文章

  1. 数据库历险记(三) | 缓存框架的连环炮 数据库历险记(二) | Redis 和 Mecached 到底哪个好? 数据库历险记(一) | MySQL这么好,为什么还有人用Oracle? 面对海量请求,缓存设计还应该考虑哪些问题?

    数据库历险记(三) | 缓存框架的连环炮   文章首发于微信公众号「陈树义」,专注于 Java 技术分享的社区.点击链接扫描二维码,与500位小伙伴一起共同进步.微信公众号二维码 http://p3n ...

  2. 【码上开心】Windows环境mysql数据库使用(二)skip-grant-tables 与用户名密码修改

    skip-grant-tables #跳过数据库权限验证 我们安装MySql 设置my.ini配置文件的时候,常常会在my.ini中添加 skip-grant-tables ,这时接数据库可以使用任意 ...

  3. 【数据库】MySQL数据库(二)

    一.数据库文件的导出 1.在DOS命令行下导出数据库(带数据) mysqldump -u root -p 数据库名 > E:\wamp\www\lamp175\lamp175.sql 2.在DO ...

  4. mysql之基本数据库操作(二)

    环境信息 数据库:mysql-5.7.20 操作系统:Ubuntu-16.04.3 mysql的启动.退出.重启 # 启动 $ sudo service mysqld start # 停止 $ sud ...

  5. Mysql数据库知识-Mysql索引总结 mysql mysql数据库 mysql函数

    mysql数据库知识-Mysql索引总结: 索引(Index)是帮助MySQL高效获取数据的数据结构. 下边是自己整理的资料与自己的学习总结,,做一个汇总. 一.真的有必要使用索引吗? 不是每一个性能 ...

  6. python Mysql (二)

    Mysql (二) 一. 事务 a.数据库开启事务命令 1 2 3 4 #start transaction 开启事务 #Rollback 回滚事务,即撤销指定的sql语句(只能回退insert de ...

  7. 关于数据库管理系统DBMS--关系型数据库(MySQL/MariaDB)

    数据库的结构(3种):层次,网状,关系型(用的最多): DBMS的三层模型: 视图层:面向最终用户: 逻辑层:面向程序员或DBA: 物理层:面向系统管理员: 关系型数据库管理系统——RDBMS: 主要 ...

  8. MySQL二进预编译制安装

    +++++++++++++++++++++++++++++++++++++++++++标题:MySQL二进预编译制安装时间:2019年2月25日内容:MySQL二进制预编译安装重点:MySQL二进制预 ...

  9. 数据库之mysql篇(1)—— 数据库管理系统简介/mysql的安装、配置

    说mysql之前,还是先说说数据库. 什么是数据库: 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后 ...

  10. 数据库,mysql

    数据库(`database`): ### 关系型数据库及非关系型数据库1. 什么是关系型数据库? 关系型数据库是一种建立在关系模型上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据.现实世 ...

随机推荐

  1. Atitit.nosql api 标准化 以及nosql数据库的实现模型分类差异

    Atitit.nosql api 标准化 以及nosql数据库的实现模型分类差异 1. 常用的nosql数据库MongoDB  Cassandra1 1.1. 查询> db.blogposts. ...

  2. [k8s]openshiftv1.5.1安装笔记

    centos7安装 net.ifnames=0 biosdevname=0 初始化系统 yum install wget -y wget -O /etc/yum.repos.d/CentOS-Base ...

  3. git设置及常用命令

    下载 下载地址:https://git-scm.com/downloads windows系统安装 默认安装即可. 其它系统安装方式请自行百度,网上教程很多. 设置 windows桌面右键,选择Git ...

  4. 设计模式中类的关系之聚合关系(Aggregation)

    聚合关系是关联关系的一种特例,它体现的是整体与部分的关系,即has-a的关系,此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享.比如计算机与 ...

  5. Trailing Zeroes (III) 假设n!后面有x个0.现在要求的是,给定x,要求最小的n; 判断一个n!后面有多少个0,通过n/5+n/25+n/125+...

    /** 题目:Trailing Zeroes (III) 链接:https://vjudge.net/contest/154246#problem/N 题意:假设n!后面有x个0.现在要求的是,给定x ...

  6. 开源码应用之Eclipse篇

    开写这篇的时候,恰逢Eclpse Mars(4.5)正式公布,最终由日蚀变登火星了,也离我開始基于Eclipse开发产品已经过去10年,这10年间,经历了Eclipse由私有核心框架到拥抱OSGi, ...

  7. 第一百七十一节,jQuery,高级事件,模拟操作,命名空间,事件委托,on、off 和 one

    jQuery,高级事件,模拟操作,命名空间,事件委托,on.off 和 one 学习要点: 1.模拟操作 2.命名空间 3.事件委托 4.on.off 和 one jQuery 不但封装了大量常用的事 ...

  8. 用Flex实现常见的几种布局

    用Flex实现常见的几种布局 1.水平,垂直居中. <style type="text/css"> .container{ display: flex; width: ...

  9. poj 3469(网络流模版)

    题目链接:http://poj.org/problem?id=3469 思路:终于把网络流的模版测试好了,在Dinic和Sap之间还是选择了Sap,事实证明Sap确实比Dinic效率高,在此贴出自己的 ...

  10. poj 2195(KM求最小权匹配)

    题目链接:http://poj.org/problem?id=2195 思路:我们都知道KM使用来求最大权匹配的,但如果要求最小权匹配,只需把图中的权值改为负值,求一次KM,然后权值和取反即可. ht ...