您的位置:首页 > 数据库 > MySQL

MySQL入门 基本语法1

2017-09-23 15:14 495 查看

一、MySQL的基本使用

1.1 命令行下的基本操作

mysql -u 用户名 -p 回车
输入密码:xxx
进入数据库
(mysql中所有的命令以分号结束,输入help;查询所有的mysql命令)


1.2 MySQL目录结构

bin: 所有的可执行文件exe
MySQLInstanceConfig.exe 服务器配置向导的文件
data: 系统数据库和自带的演示数据库的文件
my.ini  配置好的文件文件


1.3数据库服务器、数据库和表的关系



**

二、SQL语句的四种类型

2.1 DDL (Data Definition Language)

数据定义语言,用于创建表、创建库。如:create/alter/drop

2.2 DML(Data Manipulation Language)

数据操纵语言,对数据进行增删改操作。如:insert/update/delete

2.3 DQL (Data Query Language)

数据查询语言,对数据进行查询操作。如:select/show

2.4 DCL (Data Control Language)

数据控制语言,grant/revoke 对用户进行管理

2.5 MySQL 中的三种注释

1) – 单行注释 –

2)/* 多行注释 */

3)# 单行注释,不建议这种,只在mysql起作用

**

三、MySQL 管理数据库

//3.1 查看所有数据库
show databases;

//3.2 创建数据库
create database db1;

// 3.2.1 指定默认字符集为GBK
create database db2 default character set gbk;

//3.3 查看数据库的创建语句
show create database db1;


3.4 校对规则

3.4.1 什么是校对规则

字符集:一个语言的所有字符的编码表,每个字符都对应了一个编码。

校对规则:同一个字符集可以有多个校对规则,不同的校对规则排序方式不一样。

校对规则              作用
utf8_general_ci      忽略大小写进行排序,如:a B c D 排序顺序
utf8_bin             使用二进制编码进行排序,如:B D a c


3.4.2 查看字符集和校对规则:

查看所有的字符集



显示 GBK 字符集的校对规则



3.4.3 指定数据库的默认字符集为gbk和校对规则gbk_chinese_ci

create database db3 default character set gbk collate gbk_chinese_ci;


3.5 删除数据库

drop database db3;


3.6 修改数据库默认字符集,将db3的字符集改成utf8

alter database db3 default character set utf8;


**

四、表的管理

4.1 查询所有表

use db1;    --进入数据库
show tables;    --显示当前数据库中所有表


4.2 创建表 create

//创建一个学生表
create table student(
id int,
name varchar(20),
birthday date
);


先写变量名,再写数据类型

4.3 MySQL中列的数据类型



4.4 查看一个表结构

show tables;


1.以sql格式返回

show create table student;


2.以表格格式返回

desc student;


3.复制表

如:创建一个员工表,表结构与学生一样 (like)

create table employee like student;


4.删除表 drop

1)删除一张表:
drop table 表名;
2)删除多张表:
drop table 表1,表2;


5.修改表 alter

1.添加字段:add

//实例1:student表添加一个remark字段,类型char(10)
alter table student add remark char(10);

//实例2:同时添加两个字段,一个名为 a int,一个名为b int
alter table student add a int,add b int;


2.修改字段:modify

//实例:将student表中的remark字段的属性改成varchar(100)
alter table student modify remark varchar(100);


3.修改字段名称:change

//实例:将student表中的remark字段名改成intro,类型不变。
alter table student change remark intro varchar(200);


4.删除字段:drop

//删除student表中的字段a和字段b
alter table student drop a,drop b;


5.修改表名:rename

//实例:将学生表student, 改名为college_student
alter table student rename college_student;


**

五、数据的管理与操作

5.1 插入数据

– 5.1.1 插入所有列

//示例:向学生表中插入3条记录
-- 向学生表中插入3条记录,在mysql中字符串可以使用单引号和双引号,建议使用单引号。日期也使用单引号
insert into student values(1, '关羽', '2000-11-11');
insert into student values(2, '张飞', '2002-11-11');
insert into student values(3, '刘备', '1900-11-11');

-- 一条SQL语句插入三条记录,只有mysql中可以这样写
insert into student values(4, '赵云', '2000-11-11'),(5, '孔明', '2000-11-11'),(6, '吕布', '2000-11-11');


注意:

1) 数据类型与列的数据类型匹配

2) 字符串的长度不能超过列中定义的最大长度

3) 位置与列的位置匹配

4) 字符和日期型使用单引号

–5.1.2 插入部分列

insert into student (id,name) values (7, '小乔');


5.2 修改数据

语法:

**

UPDATE: 表名

SET:修改的列和值

WHERE:对符合条件的记录进行修改,如果没有写Where则是修改所有的列

**

-- 修改表结构,添加性别列char(1)
alter table student add gender char(1);

select * from student;

-- 更新student表中所有的性别列,改成男
update student set gender='男';

-- 修改小乔为女
update student set gender='女' where name='小乔';

-- 同时修改多列
update student set name='白云', birthday = '2010-03-20', gender='女' where name='赵云';


5.3 删除数据

5.3.1 删除表中的所有数据

delete from student;


5.3.2 删除部分行数据

-- 删除id为3的学生
delete from student where id=3;


**

5.4 查询数据(重点)

**

5.4.1 查询所有列

示例: 查询所有列
select * from student;


5.4.2 查询指定列

示例:多个列之间以逗号分隔
-- 查询name和gender这两列
select name,gender from student;


5.4.3 查询时指定别名

示例:查询时给列指定别名(AS)
-- 显示出来的结果是汉字,as起别名
select id as 编号, name as 姓名, birthday as 生日, gender as 性别 from student;
-- 起别名as可以省略
select id 编号, name  姓名, gender  性别 from student;


5.4.4 合并列查询

1. 需求:添加数学,英语成绩列,并添加成绩

alter table student add math int, add english int;


需求:查询每个学生的数学和英语的总成绩

-- 合并查询总成绩 (as可以省略)
select *, (math+english) as 总成绩 from student;


5.4.5 去除重复数据(distinct

需求: 查询学生都来自于哪里

-- 添加城市列
alter table student add city varchar(10);

select * from student;

-- 查询学生来至于哪些城市
select distinct city from student;


5.5 条件查询

–5.5.1 where 子句



–5.5.2 比较运算符

-- 查询数学大于85分的学生
select * from student where math > 85;

-- 查询性别不为男的
select * from student where gender <> '男'
-- 不建议
select * from student where gender != '男'
-- 查询数学在80到90之间
select * from student where math >=80 and math<=90;

-- 使用between.. and,包头又包尾
select * from student where math between 80 and 90;
-- 查询id是1,2,5的学生
select * from student where id=1 or id=2 or id=5;

-- 使用in查询
select * from student where id in(1,2,5);
-- 查询所有姓白学生,%通配符,可以匹配任意字符
select * from student where name like '白%';

-- 查询包含白字的姓名
select * from student where name like '%白%';

-- 查询姓白,只有2个字的学生,_ 匹配1个字符
select * from student where name like '白_';
-- 插入一条记录
insert into student (id,name) values (7,'张飞');

-- 查询性别为null的学生
select * from student where gender is null;


–5.5.3 判空条件

1) 判断是否为空串: gender = ‘’
2) 判断是否为空: gender is null
3) null和空字符串的区别:null是没有数据,空串是有数据,只是空字符串
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: