MySql教程

mysql-1

本文主要是介绍mysql-1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

数据库

注意:mysql的关键字不区分大小写

1、查询所有的数据库

SHOW DATABASES;
2、创建数据库

CREATE DATABASE demo DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
#CREATE DATABASE 数据库名 DEFAULT CHARACTER SET 字符编码 COLLATE 字符编码校验规则;

3、删除数据库

DROP DATABASE demo;```

4、修改数据库的字符编码

```sql
ALTER DATABASE demo DEFAULT character set gbk```

5、通过use 选择使用不同的数据库

```sql
USE demo;
SELECT * FROM abc;```
也可以通过工具

6、创建表
CREATE TABLE 表名(
字段名 字段类型[NOT NULL][AUTO_INCREMENT],
[字段名 字段类型,]
....
[字段名 字段类型,]
[PRIMARY KEY(字段名)]
)
```sql
#学生表(主键id,姓名,年龄,班级)
CREATE TABLE student(
id INT(10) NOT NULL,
name VARCHAR(100),
age INT(2),
classes VARCHAR(100),
PRIMARY key(id)
);
SHOW TABLES;```
7、添加字段
```sql
#给学生表添加一个性别字段
ALTER TABLE student ADD COLUMN sex VARCHAR(10);
#给学生表添加两个性别字段
ALTER TABLE student ADD a INT,ADD b TIMESTAMP;

8、修改字段类型

#alter table 表名 modify column 字段名 字段类型

#把字段a改成varchar
ALTER TABLE student MODIFY COLUMN a VARCHAR(4);```
9 、修改字段的名称
alter table 表名 change column 原字段名 新字段名 字段数据类型 
#把字段a的名改成a1
ALTER TABLE student CHANGE COLUMN a a1 VARCHAR(4);
10、删除表的一个到多个字段
alter table 表名 drop column 字段名;
alter table 表名 drop column 字段名,...,drop column 字段名;
#删除a1字段
ALTER TABLE student DROP COLUMN a1;
#删除多个字段
ALTER TABLE student DROP COLUMN sex,DROP COLUMN b; 
11、删除表
drop table 表名
12、查看表结构
describe 表名;
	DESCRIBE student;
# 2、管理数据
1、查表
#查询学生表的所有数据
SELECT * FROM student;
2、给表插入数据
insert into 表名 values(字段1,字段2,...,字段n);
```sql
# 查询学生表的所有数据
SELECT * FROM student;

#插入一条数据
INSERT INTO student VALUES (5,'小四',13,'三班');

#根据给定的字段插入数据
INSERT into student (id,age,classes,name) VALUES(6,12,'三班','小八');

#可以只插入一部分字段的值,其他没有指定插入的字段的值默认是null
INSERT into student (id,name) VALUES (7,'小九');

#INSERT支持批量插入,每一组值之间都是,分隔

INSERT into student (id,age,classes,name) VALUES
(8,12,'三班','小八1'),
(9,12,'三班','小八2'),
(10,12,'三班','小八3'),
(11,12,'三班','小八4');

#按默认字段插入多条数据
INSERT into student VALUES
(12,'小1',13,'三班'),
(13,'小2',13,'三班');

#插入时主键不能为重复或null,
CREATE TABLE student2(
id INT(10) NOT NULL auto_increment,
name VARCHAR(10) DEFAULT '不知道',
PRIMARY KEY (id)
);
#2、表的主键字段是整数并且是字段增长的 ,如果不填,就是默认自动增长
INSERT INTO student2 (name) VALUES ('张三'),('李四');
#1、表的字段是由默认值,如果不给这个字段值,这个字段就是默认值
INSERT INTO student2 (id) VALUES (4);

3、修改数据

1、修改一个到多个指定自读那的所有行的值
update 表名 set 字段名=值,字段名=值;

#修改所有行的班级值为大班
UPDATE student SET classes = '大班';

#修改所有行的班级值为大班123,年龄改成16
UPDATE student SET classes = '大班123',age=16;

2、条件修改
update 表名 set 字段名 = 值 where 字段名 = 值;

#有条件的修改,修改id为2的学护士那个的班级为快班,年龄为12
update student SET classes = '快班',age = 12 WHERE id = 2;

3、删除表

#按条件删除,delete from 表名 where 字段名 = 值;
#删除id=3
#删除不加数据,就是删除整个表
DELETE FROM student WHERE id = 3;

UPDATE student SET age=12 WHERE id =4
#按照条件匹配进行删除
DELETE from student where age = 12;

4、查询数据

查询

#查询表的所有列
SELECT * FROM student;

#查询表指定的列,多个列用逗号分隔;
SELECT name FROM student;

# 想用别的表头替换字段的名,可以使用别名,id换成编号。。,
SELECT id '编号',name '姓名',age '年龄' FROM student;

#合并列查询:想要在一列中栈实班级姓名,表头是 ‘班级-姓名’,内容对应也是一列。
SELECT CONCAT(classes,'-',name) FROM student;
#别名
SELECT CONCAT(classes,'-',name) '班级-姓名' FROM student;

#算数运算
SELECT name,(mysql+hadoop) '总成绩' FROM student;

#查询常量
SELECT name,'橙光' FROM student;

SELECT classes from student;

#查询时去除重复的值,例如查询班级
SELECT DISTINCT classes FROM student;

条件查询

1、比较条件

#比较查询,查询年龄大于20的人
SELECT * FROM student WHERE age > 20;

SELECT * FROM student WHERE mysql BETWEEN 80 AND 90;

2、逻辑条件

#逻辑查询
#查询在大班123的学生mysql成绩在85分以上的学生,and可以连用
SELECT * FROM student WHERE classes = '大班123' AND mysql > 85;
#查询大班1或大版2的学生,OR可以连续使用
SELECT * FROM student WHERE classes = '大班1' or classes = '大班3';
#or 和and可以结合使用
SELECT * FROM student WHERE (classes = '大班123' AND mysql>80) or (classes = '大班1' AND hadoop >90);

3、判空条件

#判空查询
#查询name不是空字符串的数据,<>:代表非,不是且自带not NULL。
SELECT * FROM student WHERE name != '';
SELECT * FROM student WHERE name <>'';

#查询年龄部位空或为空
SELECT * FROM student  where age IS NULL;
SELECT * FROM student  where age IS NOT NULL;

4、模糊查询
字段类型为字符串时,查询字段值是否包含哪些字符串。
例如:查询姓张学生都有哪些
符号:
like:包含
not like :不包含
—:匹配0到1个字符串
%:匹配1到多个字符串

#模糊查询
#查询姓名中包含张的学生
SELECT * from student  where name LIKE '张%';
#查询以1结尾的学生
SELECT * from student WHERE name like '%1';
#查询性张的学生名字时三个字的
SELECT * FROM student WHERE name LIKE '张__';

5、聚合查询
sum:求和
avg:求平均数
max:最大值
min:最小值
count:计数

#查询mysql
SELECT mysql FROM student;
#查询mysql分数的总和
SELECT SUM(mysql) FROM student;
#统计student表现在有多少数据,COUNT(DISTINCT expr,[expr...])中的参数可以时*,字段,常量
SELECT COUNT(* ) FROM student;

#查询大班1的mysql平均成绩
SELECT AVG(mysql) FROM student WHERE classes = '大班1'

SELECT AVG(mysql),SUM(hadoop) FROM student WHERE classes = '大班1'

6、排序查询
order by 字段:正序
order by 字段 asc :正序asc可以省略
oreder by 字段 desc :倒叙

#以年龄正序排列
SELECT * from student ORDER BY age;

#以年龄正序排列,年龄相同,按mysql成绩排序
SELECT * FROM student ORDER BY age,mysql;

#正序和倒序可以混用,以年龄正序排列,年龄相同的以mysql倒叙排列
SELECT * FROM student ORDER BY age,mysql DESC;

SELECT * FROM student ORDER BY age DESC,mysql DESC;
# 排除age为空
SELECT * FROM student WHERE age is NOT NULL  ORDER BY age,mysql DESC


这篇关于mysql-1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!