数据库-mysql

基本操作:

创建库
create database if not exists tlxy default charset=utf8;
创建表
create table 表名(字段名,类型,【字段约束】,。。。)表引擎;
修改表结构
语法格式:alter table 表名 action (更改的选项)
修改表引擎语句
alter table users engine = 'myisam';
删除表 drop table 表名

数据类型

字符串:

char(x)定长字符串 varchar(x)变长 text()最大64k的变长文本 tinytext...
enum('男','女'....) :接受最多64k个串组成的一个预定集合里面的某个串.

数值类型:

所有数值数据类型(除BIT和BOOLEAN外)都可以有符号或无符号(只能存储正.使用UNSIGNED关键字)
int: 4字节 int(4) 没有意义,默认无符号的int为int(11),有符号的int(10)
只有当给int类型设置有前导零时,设置int的宽度才有意义如int(4) unsigned zerofill
tinyint:1字节8位 smallint bit:位字段 1-64位
double float decimal(5, 2):精度可变,这里表示数值总共5位, 小数占2位

日期

datetime 8字节1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
YYYY-MM-DD HH:MM:SS

二进制

一些字段约束

  • not null 不能为空,在操作数据库时如果输入该字段的数据为NULL ,就会报错
  • default 设置默认值
  • primary key 主键不能为空,且唯一.一般和自动递增一起配合使用。
  • auto_increment 定义列为自增属性,一般用于主键,数值会自动加1
  • unique 唯一索引(数据不能重复:用户名)可以增加查询速度,但是会降低插入和更新速度

运算符

like: 支持特殊符号%和_ ;

主键

表中每一行都应该有可以唯一标识自己的一列,不更改,可以用自增整数类型

Mysql数据库表引擎与字符集

存储引擎以前叫做表处理器,它的功能就是接收上层传下来的指令,然后对表中的数据进行提取或写入操作。

MyISAM和InnoDB表引擎的区别:
1.MyISAM不支持事务,而InnoDB支持。

事务由一个或多个sql语句组成一个整体,如果所有的语句执行成功那么修改将会全部生效,如一条sql语句将销量+1,下一条再+1,倘若第二条失败,那么销量将撤销第一条sql语句的+1操作,只有在该事务中所有的语句都执行成功才会将修改加入到数据库中。

2.存储结构
MyISAM:每个MyISAM在磁盘上存储成三个文件。

  • .frm文件存储表结构。
  • .MYD文件存储数据。
  • .MYI文件存储索引。
    InnoDB:主要分为两种文件进行存储
  • .frm 存储表结构
  • .ibd 存储数据和索引 (也可能是多个.ibd文件,或者是独立的表空间文件)

3.MyISAM:只支持表级锁,InnoDB:支持事务和行级锁,是innodb的最大特色。

4.MyISAM:允许没有任何索引和主键的表存在.InnoDB:如果没有设定主键或者非空唯一索引,就会自动生成一个6字节的主键。

5.MyISAM:保存有表的总行数,如果select count() from table;会直接取出出该值。InnoDB:没有保存表的总行数(只能遍历)

  1. CURD操作
    MyISAM:如果执行大量的SELECT,MyISAM是更好的选择。
    InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表.

7.外键MyISAM:不支持.InnoDB:支持

8.查询效率MyISAM相对简单,所以在效率上要优于InnoDB,小型应用可以考虑使用MyISAM。

9.MyISAM和InnoDB两者的应用场景:
MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择。
InnoDB用于事务处理应用程序,具有众多特性,包括ACID事务支持。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能。现在默认使用InnoDB。

增删改查

格式: insert into 表名[(字段列表)] values(值列表...);
insert into stu(id,name,age,sex,classid)values(1,'zhangsan',20,'m','lamp138');
insert into stu value(null,'wangwu',21,'w','lamp138');
mysql> insert into stu values
-> (null,'zhaoliu',25,'w','lamp94'),
-> (null,'uu01',26,'m','lamp94');

格式:update 表名 set 字段1=值1,字段2=值2,字段n=值n... where 条件
update stu set age=35,sex='m' where id=11;

格式:delete from 表名 [where 条件]
delete from stu where id=100;

查询

select 字段列表或* from 表名
[where 搜索条件] (注意and优先级高于or)
[group by 分组字段 [having 分组条件]]
[order by 排序字段 排序规则] (Asc 升序,默认;desc降序)
[limit 分页参数] (limit n 提取n条数据; limit m,n 跳过m跳数据,提取n条数据
)

like用法:
使用 % 模糊搜索。%代表任意个任意字符
查询name字段中包含五的 :select * from users where name like '%五%';

查询name字段中最后一个字符 为 五的 : select * from users where name like '%五';

查询name字段中第一个字符 为 王 的 :select * from users where name like '王%';

使用 _ 单个的下划线。表示一个任意字符,使用和%类似,用两个就是两个字符
-- 查询表中 name 字段为两个字符的数据 : select * from users where name like '
_';

查询 name 字段最后为五,的两个字符的数据:select * from users where name like '_五';

聚合函数max(),min(),count(),sum(),avg()
-- 统计 users 表中的数据量:select count(*) from users;

-- count(*) 是按照 users表中所有的列进行数据的统计,只要其中一列上有数据,就可以计算
-- count(id) 是按照指定的 id 字段进行统计,也可以使用别的字段进行统计,
-- 但是注意,如果指定的列上出现了NULL值,那么为NULL的这个数据不会被统计

分组 select classid,count(*) as num from users group by classid having num >=5;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354