数据表基本

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. SVN钩子 之 pre-commit

    http://files.cnblogs.com/lyl6796910/pre-commit%E9%92%A9%E5%AD%90.rar 我用的是Windows版本的SVN:VisualSVN Ser ...

  2. linux使用fdisk命令操作硬盘

    知识点: MBR:Master Boot Record 主引导记录 在硬盘0柱面 0磁头的第一个扇区,占512字节(3部分 主引导程序 446字节,硬盘分区表DPT[disk partion tabl ...

  3. 一个关于原生 js 开发一款插件的前端教程

    教程链接: http://www.codeasily.net/course/plugin_course/ 写的不是很好,前面比较松后面比较急,请大家见谅,本人也没多少年前端经验,拿以前写过的教程网站, ...

  4. HDU5374 Tetris (2015年多校比赛第7场)大模拟

    思路: 先写好了几个函数.旋转,四种操作,推断能否够进行合并消除 题中有好几处要考虑的细节问题,如 自然下落究竟部时不进行合并的推断,而是当自然下落非法时才推断 假设消除一行,这一行上面的所以方块仅仅 ...

  5. 27. Remove Element【easy】

    27. Remove Element[easy] Given an array and a value, remove all instances of that value in place and ...

  6. jquery的ajax-serialize()

    jQuery ajax - serialize() 方法 jQuery Ajax 参考手册 实例 输出序列化表单值的结果: $("button").click(function() ...

  7. Hibernate使用注意事项

    映射的POJO类型中如果有基本类型最好都是用包装类来代替: 注意关联关系的正确设置,一对一(主键方式.外键外键方式),一对多和多对多的配置,单向.双向的配置: 更新核心配置文件的mapping:如果是 ...

  8. UVA 12169 Disgruntled Judge 扩展欧几里得

    /** 题目:UVA 12169 Disgruntled Judge 链接:https://vjudge.net/problem/UVA-12169 题意:原题 思路: a,b范围都在10000以内. ...

  9. Swift 开源 Linux Ubuntu Install

    Swift 开源了,它现在变成跨平台的了,开源后的 Swift 不止能运行在 MAC 和 iOS 平台,现在也可以运行在 Linux 平台了.swift.org 网站上面提供了在 Linux 上面安装 ...

  10. Vim使用技巧(3) -- 可视化模式技巧 【持续更新】

    快捷键 Esc / Ctrl + [ / v //切换到普通模式 o //切换高亮选区的光标活动端 y //将光标选中的内容复制到寄存器中 u //将光标选中的字母全部改成小写字母 U //将光标选中 ...