MYSQL基础及实例代码

-- 数据库和数据表的操作 --

-- 查询所有数据库
SHOW DATABASES;

--  查询正在使用的数据库
SELECT DATABASE();

-- 查询某个数据库的创建
SHOW CREATE DATABASE db3;

-- 创建一个数据库db1
CREATE DATABASE db1;

-- 创建一个数据库db2,如果不存在则创建
CREATE DATABASE IF NOT EXISTS db2;

-- 创建一个数据库db3,如果不存在则创建。并指定字符集为gbk
CREATE DATABASE IF NOT EXISTS db3 CHARACTER SET gbk;

-- 将db3数据的字符集修改为utf8
ALTER DATABASE db3 CHARACTER SET utf8;

-- 使用某个数据库
USE itheima1;

-- 查看当前正在使用的数据库
SELECT DATABASE();

-- 删除数据库db1
DROP DATABASE db1;

-- 删除数据库db2,如果存在则删除
DROP DATABASE IF EXISTS db2;

-- 查询mysql数据库中的所有表
SHOW TABLES;

-- 查看某个表的结构
DESC users;

/*
	创建一个数据库:itheima1
	在itheima1数据库中创建一个student表
	字段:
	id  编号
	name 名称
	age 年龄
	score 分数
	birthday 生日
	create_time 创建时间
*/
CREATE DATABASE itheima1;

USE itheima1;

CREATE TABLE student(
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(30) NOT NULL,
	age INT NOT NULL,
	score DOUBLE,
	birthday DATE,
	create_time TIMESTAMP
);

DESC student;


-- 复制student表,到stu表
CREATE TABLE stu LIKE student;

-- 删除stu表
DROP TABLE stu;

-- insert into stu values (null,'张三',23,85,'1990-10-10',null);

-- 摧毁表,将表删除,按照创建时的规则重新创建
TRUNCATE stu;

-- 修改stu数据表字符集为gbk
ALTER TABLE stu CHARACTER SET gbk;

-- 修改stu数据表为stu2
ALTER TABLE stu RENAME stu2;

-- 修改stu2数据表为stu
ALTER TABLE stu2 RENAME stu;

-- 在stu数据表中添加一个tel列 数据类型为varchar
ALTER TABLE stu ADD tel VARCHAR(20) NOT NULL; 

-- 将stu数据表中的tel列数据类型修改为int
ALTER TABLE stu MODIFY tel INT NOT NULL;

-- 将stu数据表中的tel列修改为phone,数据类型为varchar
ALTER TABLE stu CHANGE tel phone VARCHAR(30) NOT NULL;

-- 将stu表中的phone列删除
ALTER TABLE stu DROP phone;


DESC stu;

-- 数据增删改操作 --
CREATE DATABASE db1;

USE db1;

CREATE TABLE stu(
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(30) NOT NULL,
	age INT NOT NULL,
	score DOUBLE,
	birthday DATE,
	create_time TIMESTAMP
);

/*
	添加
*/
-- 添加数据完整格式
INSERT INTO stu (id,NAME,age,score,birthday,create_time) VALUES (1,'张三',23,85,'1990-10-10',NULL);

-- 添加数据简化格式
INSERT INTO stu VALUES (2,'李四',24,95,'1992-02-02',NULL);

-- 傻瓜式批量添加数据
INSERT INTO stu VALUES (2,'李四',24,95,'1992-02-02',NULL);
INSERT INTO stu VALUES (3,'王五',25,75,'1993-03-03',NULL);
INSERT INTO stu VALUES (4,'赵六',26,65,'1994-12-06',NULL);

-- 优化式批量添加数据
INSERT INTO stu VALUES (5,'周七',27,80,'1993-12-06',NULL),
(6,'李老八',22,83,'1998-05-06',NULL),
(7,'张老九',19,76,'1996-08-06',NULL);

/*
	删除
*/
-- 将姓名为张老九的记录删除
DELETE FROM stu WHERE NAME='张老九';

-- 将姓名为赵六、并且年龄为26的记录删除
DELETE FROM stu WHERE NAME='赵六' AND age=26;

-- 将出生日期在:1992-01-01 -- 1993-12-31 的人全部删除
DELETE FROM stu WHERE birthday>='1992-01-01' AND birthday<='1993-12-31';

/*
	修改
*/
-- 将王五的成绩修改为100
UPDATE stu SET score=100 WHERE NAME='王五';

-- 将周七的年龄修改为37,并且将成绩修改为99
UPDATE stu SET age=37,score=99 WHERE NAME='周七';

-- 将年龄在23岁--25岁之间的学员成绩全部修改为60分
UPDATE stu SET score=60 WHERE age >= 23 AND age <= 25;

--  数据的查询操作--
-- 查询所有表数据
SELECT * FROM stu;
-- 创建表
CREATE TABLE student (
	id INT, -- 编号
	NAME VARCHAR(20), -- 姓名
	age INT, -- 年龄
	sex VARCHAR(5), -- 性别
	address VARCHAR(100), -- 地址
	math INT, -- 数学
	english INT -- 英语
);

-- 插入数据
INSERT INTO student(id,NAME,age,sex,address,math,english) VALUES 
(1,'马云',55,'男','杭州',66,78),
(2,'马化腾',45,'女','深圳',98,87),
(3,'马景涛',55,'男','香港',56,77),
(4,'柳岩',20,'女','湖南',76,65),
(5,'柳青',20,'男','湖南',86,NULL),
(6,'刘德华',57,'男','香港',99,99),
(7,'马德',22,'女','香港',99,99),
(8,'德玛西亚',18,'男','南京',56,65);



-- 查询地址字段。
SELECT address FROM student;

-- 查询地址字段,去除重复值
SELECT DISTINCT address FROM student;

-- 查询每个人的分数总和,如果某个分数是null,视为0
SELECT NAME,math,english,IFNULL(math,0) + IFNULL(english,0) AS 'sum' FROM student;


-- 查询年龄大于20岁
SELECT * FROM student WHERE age > 20;
SELECT * FROM student WHERE age >= 20;

-- 查询年龄等于20岁
SELECT * FROM student WHERE age = 20;

-- 查询年龄不等于20岁
SELECT * FROM student WHERE age != 20;
SELECT * FROM student WHERE age <> 20;

-- 查询年龄大于等于20 小于等于30
SELECT * FROM student WHERE age >= 20 && age <=30;
SELECT * FROM student WHERE age >= 20 AND age <=30;
SELECT * FROM student WHERE age BETWEEN 20 AND 30;

-- 查询年龄22岁,18岁,25岁的信息
SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25;
SELECT * FROM student WHERE age IN (22,18,25);

-- 查询英语成绩为null
SELECT * FROM student WHERE english = NULL; -- 不对的。null值不能使用 = (!=) 判断
SELECT * FROM student WHERE english IS NULL;

-- 查询英语成绩不为null
SELECT * FROM student WHERE english IS NOT NULL;



-- 查询姓马的有哪些? like
SELECT * FROM student WHERE NAME LIKE '马%';

-- 查询姓名第二个字是化的人
SELECT * FROM student WHERE NAME LIKE "_化%";

-- 查询姓名是4个字的人
SELECT * FROM student WHERE NAME LIKE '____';

-- 查询姓名中包含德的人
SELECT * FROM student WHERE NAME LIKE '%德%';

 

你可能感兴趣的:(MYSQL,M,MYSQL)