MySQL数据库语法大全

一、普通的增删改查

1.1、创建数据表

CREATE TABLE `employ` (
  `id` VARCHAR(32) CHARACTER SET gbk NOT NULL,
  `username` VARCHAR(32) CHARACTER SET gbk NOT NULL,
  `address` VARCHAR(32) CHARACTER SET gbk NOT NULL,
  `age` INT(2)  NOT NULL COMMENT '用户年龄',
  `sigin` INT(2) NOT NULL COMMENT '登录次数',
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='职员表';

1.2、插入数据

INSERT INTO employ(id,username,address,age,sigin)VALUES
('342345','小明','深圳','21','3'),
('5432563','小芳','深圳','12','10'),
('4312453','大壮','北京','34','11'),
('rewq54','小明','长沙','45','2'),
('65657','小芳','广州','22','6'),
('rewr5634','老王','北京','29','11');

1.3、更新和删除数据库

UPDATE employ SET username='大名',sigin='5' WHERE id='342345';

DELETE  FROM employ WHERE id='65657';

1.4、like和where的使用

  • 查找username以大开头的数据,like也可以叫做模糊查询
SELECT * FROM employ WHERE username LIKE '大%';        
  • 结果
    在这里插入图片描述

二、复杂查询

  • app表数据:
    在这里插入图片描述
  • people表数据
    在这里插入图片描述

2.1、UNION:用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。

1、使用UNION语句:
SELECT country,id FROM app
UNION 
SELECT country,id FROM peopel; 
  • 结果
    在这里插入图片描述
  • 因为把id也戴上了,所以是id和country两个字段查询结果的并集之和。
  • 只查country字段
SELECT country FROM app
UNION 
SELECT country FROM peopel; 
  • 结果: 只会显示country的并集,且值不会发生重复
    在这里插入图片描述
2、使用UNION ALL 语句
  • UNION ALL 从 “people” 和 “apps” 表中选取所有的country(会有重复的值)
SELECT country FROM app
UNION ALL
SELECT country FROM peopel; 
  • 结果
    在这里插入图片描述

2.2、排序

  • 这里以peopel表为例
1、升序
SELECT * FROM peopel ORDER BY age;
  • 结果:
    在这里插入图片描述
2、降序
SELECT * FROM peopel ORDER BY age;
  • 结果:在这里插入图片描述

2.3、其它数据库基本语法,后面的语法就不演示效果了

  • 通过country字段进行分组,同时计算出每一个country值重复的次数
SELECT country,COUNT(*) FROM peopel GROUP BY country;
  • 通过country字段进行分组,把country值对应的所有的age值相加得到一个age字段的总值
SELECT country,SUM(age) FROM peopel GROUP BY country;
  • inner join行内查询
SELECT a.id,a.`app_name`,a.`country`,p.`id`,p.`country` FROM app a,peopel p WHERE a.`country`=p.`country`;
  • 左又对齐查询LEFT JOINRIGHT JOIN
SELECT * FROM app LEFT JOIN peopel ON app.`country`=peopel.`country`;

SELECT * FROM app RIGHT JOIN peopel ON app.`country`=peopel.`country`;
  • ALTER 对数据库表字段名进行增删查改
//添加一个新的字段,字段名为c
ALTER TABLE peopel ADD `c` INT NOT NULL;
//删除c这个字段
ALTER TABLE peopel DROP `c`;
//修改字段,将sex字段名修改为xingbie并修改其字段类型
ALTER TABLE peopel CHANGE sex xingbie INT NOT NULL; 
//设置字段值不唯一,UNIQUE也是设置索引的一种方式
ALTER TABLE peopel ADD UNIQUE(c);
//定义列字段为递增,在MySQL的客户端中你可以使用 SQL中的LAST_INSERT_ID( ) 函数来获取最后的插入表中的自增列的值。
 AUTO_INCREMENT
  • auto_increment设置自增的字段的开始值为100
mysql> CREATE TABLE insect
    -> (
    -> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    -> PRIMARY KEY (id),
    -> name VARCHAR(30) NOT NULL, 
    -> date DATE NOT NULL,
    -> origin VARCHAR(30) NOT NULL
)engine=innodb auto_increment=100 charset=utf8;
  • IGNORE INTO忽略已经插入的数据,如设置了唯一索引,现在新插入的数据与原有的一个数据索引冲突,使用此语法可直接跳过该条数据插入。
INSERT IGNORE INTO person_tbl (last_name, first_name)
    -> VALUES( 'Jay', 'Thomas');
  • 统计重复数据的次数
mysql> SELECT COUNT(*) as repetitions, last_name, first_name
    -> FROM person_tbl
    -> GROUP BY last_name, first_name
    -> HAVING repetitions > 1;
  • 以下实例中我们将数据表 runoob_tbl 数据导出到 /tmp/runoob.txt 文件中:
mysql> SELECT * FROM runoob_tbl 
    -> INTO OUTFILE '/tmp/runoob.txt';

mysql函数列表
MySQL运算符

  • 事务和元数据待学习
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值