MYSQL数据库操作语句1

  1. MYSQL创建数据库
CREATE DATABASE RUNOOB;
  1. MYSQL删除数据库
DROP DATABASE runoob_tbl;
  1. MYSQL创建数据表
CREATE TABLE runoob_tb4(
runoob_id INT NOT NULL AUTO_INCREMENT,
runoob_title VARCHAR(100) NOT NULL,
runoob_author VARCHAR(40) NOT NULL,
submission_date DATE,
PRIMARY KEY (runoob_id))
ENGINE=InnoDB DEFAULT CHARSET=utf8;

4.MYSQL删除数据表

DROP TABLE runoob_tb4;

5.MYSQL插入数据

INSERT INTO runoob_tbl(runoob_title,runoob_author,submission_date)
VALUES("学习PHP","菜鸟课程”,NOW());
INSERT INTO `runoob_tbl` (`runoob_id`, `runoob_title`, `runoob_author`) VALUES (1, '学习PHP', '菜鸟教程') ;
INSERT INTO `runoob_tbl` (`runoob_id`, `runoob_title`, `runoob_author`) VALUES (2, '学习MYSQL', '菜鸟教程');
INSERT INTO `runoob_tbl` (`runoob_id`, `runoob_title`, `runoob_author`,submission_date) VALUES (3, '学习UI', '菜鸟教程',NOW());
INSERT INTO `runoob_tbl` (`runoob_id`, `runoob_title`, `runoob_author`,submission_date) VALUES (4, '学习JAVA教程', 'RUNOOB.COM',NOW());
INSERT INTO `runoob_tbl` (`runoob_id`, `runoob_title`, `runoob_author`,submission_date) VALUES (5, '学习SQL教程', 'RUNOOB.COM','2020-09-05');

6.MYSQL查询数据

SELECT * FROM runoob_tbl;
SELECT * FROM runoob_tbl WHERE runoob_author='菜鸟教程';
select * from runoob_tbl where runoob_author='RUNOOB.COM';

7.MYSQL UPDATE更新数据

UPDATE runoob_tbl SET runoob_title='MYSQL教程' WHERE runoob_id=7;
UPDATE runoob_tbl SET runoob_title='ORACLE教程' WHERE runoob_id=8;
UPDATE runoob_tbl SET runoob_title='DB2教程' WHERE runoob_id=9;
UPDATE runoob_tbl SET runoob_title='MongoDB教程' WHERE runoob_id=10;

8.MYSQL DELETE删除语句

INSERT INTO `runoob_tbl` (`runoob_id`,`runoob_title`,`runoob_author`,submission_date) VALUES(14,'学习SQL3','菜鸟教程',NOW());
UPDATE runoob_tbl SET runoob_title='学习SQL0' WHERE runoob_id=11;
delete from runoob_tbl WHERE runoob_id=14;

9.MYSQL LIKE字句

SELECT * FROM runoob_tbl WHERE runoob_author LIKE '%COM';
SELECT * FROM runoob_tbl WHERE runoob_author LIKE '菜鸟%';

10.MYSQL UNION 操作符

创建数据表Websites
CREATE TABLE Websites(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
url VARCHAR(100) NOT NULL,
alexa INT,
country  VARCHAR(40),
PRIMARY KEY (id))
ENGINE=InnoDB DEFAULT CHARSET=utf8;
Websites新增数据
INSERT INTO `Websites` (`id`,`name`,`url`,`alexa`,`country`) 
VALUES (7,'stackoverflow','http://stackoverflow.com/',0,'IND');

创建表apps
CREATE TABLE apps(
id INT NOT NULL AUTO_INCREMENT,
app_name VARCHAR(100) NOT NULL,
url VARCHAR(100) NOT NULL,
country  VARCHAR(40),
PRIMARY KEY (id))
ENGINE=InnoDB DEFAULT CHARSET=utf8;
apps新增数据
INSERT INTO `apps` (`id`,`app_name`,`url`,`country`) 
VALUES (3,'淘宝 APP','https://www.taobao.com/','CN');

SQL UNION 实例
统计数据表Websites与apps,字段country有几个不同国家;
SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;

SQL UNION ALL 实例
统计数据表Websites与apps,字段country合计有多少国家;
SELECT country FROM Websites
UNION ALL
SELECT country FROM apps
ORDER BY country;

统计数据表Websites与apps,2个字段country与字段name;

SELECT country,name FROM Websites WHERE country='CN'
UNION ALL
SELECT country,app_name FROM apps WHERE country='CN'
ORDER BY country;

11.MYSQL分组

MYSQL分组
创建表employee_tbl
CREATE TABLE `employee_tbl`(
`id` INT(11) NOT NULL,
`name` char(10) NOT NULL DEFAULT '',
`data` datetime NOT NULL,
`singin` tinyint(4) NOT NULL DEFAULT '0' COMMENT '登录次数',
PRIMARY KEY(`id`))
ENGINE=InnoDB DEFAULT CHARSET=utf8;

employee_tbl插入数据
INSERT INTO `employee_tbl` VALUES
('1','小明','2016-04-22 15:25:33','1'),
('2','小王','2016-04-20 15:25:47','3'),
('3','小丽','2016-04-19 15:26:02','2'),
('4','小王','2016-04-07 15:26:14','4'),
('5','小明','2016-04-11 15:26:40','4'),
('6','小明','2016-04-04 15:26:54','2');

employee_tbl按名字进行分组,并统计每个人有多少条记录
SELECT name,COUNT(*) FROM employee_tbl GROUP BY name;
SELECT name, SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;
SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;

12.MYSQL连接的使用

内连接(等值连接) INNER JOIN
CREATE TABLE `tcount_tbl`(
`runoob_author` VARCHAR(100) NOT NULL,
`runoob_count` VARCHAR(100) NOT NULL,
PRIMARY KEY (runoob_author))
ENGINE=InnoDB DEFAULT CHARSET=utf8;

SELECT * FROM tcount_tbl;
SELECT * FROM runoob_tbl;

INNER JOIN(内连接)
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;
LEFT JOIN (左外连接)
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a LEFT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author ORDER BY a_runoob_id ASC;
RIGHT JOIN(右外连接)
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a RIGHT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

MySQL NULL 值处理
CREATE TABLE runoob_test_tbl(
runoob_author VARCHAR(40) NOT NULL,
runoob_count INT);

INSERT INTO `runoob_test_tbl` VALUES
('RUNOOB', 20),
('菜鸟教程', NULL),
('Google', NULL),
('FK', 20);
	可以看到 =!= 运算符是不起作用的
 SELECT * FROM runoob_test_tbl WHERE runoob_count = NULL;
 SELECT * FROM runoob_test_tbl WHERE runoob_count != NULL;
 
	查找数据表中 runoob_test_tbl 列是否为 NULL,必须使用 IS NULLIS NOT NULL
 SELECT * FROM runoob_test_tbl WHERE runoob_count IS NULL;
 SELECT * from runoob_test_tbl WHERE runoob_count IS NOT NULL;

13.MYSQL事务

CREATE TABLE runoob_transaction_test( id int(5)) engine=innodb;

SELECT * FROM runoob_transaction_test;
TRUNCATE runoob_transaction_test;#清空表数据
DELETE FROM runoob_transaction_test;#清空表数据

BEGIN;#开始事务
INSERT INTO runoob_transaction_test VALUE(5);
insert INTO runoob_transaction_test VALUE(6);
COMMIT;#提交事务
SELECT * FROM runoob_transaction_test;

BEGIN;#开始事务
INSERT INTO runoob_transaction_test VALUE(7);
ROLLBACK;#回滚
SELECT * FROM runoob_transaction_test;#因为回滚所以数据没有插入

14.MYSQL ALTER命令

CREATE TABLE testalter_tbl(i INT,c CHAR(1));

SELECT * FROM testalter_tbl;

#删除,添加或修改表字段
SHOW COLUMNS FROM testalter_tbl;
#把testalter_tb1删除 字段 i
ALTER TABLE testalter_tbl  DROP i;
#把testalter_tb1添加 字段 i
ALTER TABLE testalter_tbl ADD i INT;
#把user_name列移动到password后面 
alter table employee modify user_name varchar(100) after password;  
#把user_name列移动到最前面
alter table employee modify user_name varchar(100) first; 

ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT FIRST;
ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT AFTER c;

#修改字段类型及名称
ALTER TABLE testalter_tbl MODIFY c CHAR(10);
ALTER TABLE testalter_tbl CHANGE i j BIGINT;
ALTER TABLE testalter_tbl CHANGE j j INT;

#ALTER TABLE 对 Null 值和默认值的影响
ALTER TABLE testalter_tbl
MODIFY j BIGINT NOT NULL DEFAULT 100;

#修改字段默认值
ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
SHOW COLUMNS FROM testalter_tbl;

ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
SHOW COLUMNS FROM testalter_tbl;

#修改表名
ALTER TABLE testalter_tbl RENAME TO alter_tbl;

猜你喜欢

转载自blog.csdn.net/qq_51959441/article/details/109331829