一、普通的增删改查
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、排序
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;
SELECT a. id, a. ` app_name` , a. ` country` , p. ` id` , p. ` country` FROM app a, peopel p WHERE a. ` country` = p. ` country` ;
左又对齐查询LEFT JOIN 和RIGHT JOIN
SELECT * FROM app LEFT JOIN peopel ON app. ` country` = peopel. ` country` ;
SELECT * FROM app RIGHT JOIN peopel ON app. ` country` = peopel. ` country` ;
ALTER TABLE peopel ADD ` c` INT NOT NULL ;
ALTER TABLE peopel DROP ` c` ;
ALTER TABLE peopel CHANGE sex xingbie INT NOT NULL ;
ALTER TABLE peopel ADD UNIQUE ( c) ;
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运算符