MySQL(一、基础语法)

MySQL基础和基本语法

什么是数据库

  • DB(Datebase)即存储数据的仓库, 它保存一类系列有组织的数据
  • 本质上是一个文件系统,还是以文件的方式存储在服务器上的
  • 所有的关系型数据库都可以使用SQL语句进行管理
  • DBMS(DateBase Management System)数据库管理系统,是一种操作和管理数据库的大型软件
  • 关系型数据库是目前最普遍的一种数据库类型

数据库管理系统

常见的数据库管理系统:

  • MySQL:开源免费的数据库,小型的数据库,MySQL也有收费版。
  • Oracle:收费的大型数据库
  • DB2:IBM公司的数据库产品,收费的,常应用在银行系统中
  • SQL Server:MicroSoft公司收费的中型数据库,C#、Net等语言开发常用
  • SQLite:嵌入式的小型数据库,应用在移动终端

为什么使用MySQL:MySQL是一种开放源代码的关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年被Sun公司收购,而2009年Sun公司又被Oracle公司收购。目前MySQL被广泛用在Interne上,无论大小企业,目前都在很广泛的使用MySQL。由于其体积小、速度快、成本低、尤其开源这一特点,使得很多互联网公司都选择了MySQL作为数据库。

关系型数据库

  • 关系型数据库的表采用二维表格来存储数据,是一种按行和列排列的具有相关信息的逻辑图,它类似于Excel工作表,一个数据库可以包含任意多个数据表。
  • 表中的一行即为一条记录,数据表中的每一列称为一个字段,表是由其包含的各种字段定义的,每个字段描述了它所含有的这一列数据的意义
  • 数据表的设计实际上就是对字段的设计,创建数据表时,每一个字段分配一个数据类型,定义它们的数据长度和其他属性。
  • 行和列的交叉位置表示某个属性值。
  • (总的来说就是由二维表和表之间的联系所组成的一个数据组织

SQL

SQL语句的分类:

  • Date Definition Language(DDL 数据定义语言),创建数据库、数据表

  • Data Manipulation Language(DML 数据操作语言),增删改数据

  • Data Query Language(DQL 数据查询语言),查询表中数据

  • Data Control Language(DCL 数据控制语言),用户权限设置

DDL数据库操作

创建数据库
-- 创建数据库
create database my_db01;
-- 判断是否存在数据库 ,不存在则创建
create database if not exists my_db02;
-- 创建数据库,指定字符集
create database my_db03 default character set utf8;
查看数据库
-- 查看所有数据库
show databases;
-- 查看某个数据库的定义信息
show create databases my_db01;
修改数据库
-- 修改数据库的默认字符集
alter database my_db01 default character set gbk;
删除数据库
-- 删除数据库
drop database my_db01;
使用数据库
-- 改变使用的数据库
use my_db01;
-- 查看当前使用的数据库
select database();

DDL数据表操作

创建表
create table students(
    id int,
    name varchar(10),
    birthday date,
    score double
)
查看表
-- 查看所有表
show tables;
-- 查看表结构
desc students;
-- 查看创建表的SQL语句
show create table students;
-- 快速创建一个表结构相同的表(MYSQL特有)
create table stu2 like students;
删除表
-- 直接删除表
drop table students;
-- 判断表是否存在后删除表
drop table if exists students;
修改表
-- 添加列
alter table students add des text;
-- 修改列类型
alter table students modify des varchar(20);
-- 修改列名
alter table students change des dess text;
-- 删除列
alter table students drop dess;
-- 修改表名
rename table students to stu
-- 修改字符集
alter table stu character set gbk;

DML数据操作

插入数据
-- 为指定字段添加值,不写字段应该将值与表结构字段顺序、个数一一对应
insert into stu(id,name,birthday,score)
values(1001,'张三','2000-09-21',80.5),
(1002,'李四','1999-3-21',85),
(1003,'王五','1998-4-20',90);
更新数据
-- 更新表中指定字段的所有数据
upate stu set score=100;
-- 带条件的修改
update stu set score=100 where id=1001;
删除数据
-- 删除表中所有数据
delete from stu;
-- 删除指定数据
delete from stu where id=1002;
-- 重置表(相当于删除表的结构,重新创建一张表)
truncate table stu;

DQL数据查询

简单查询
-- 查询表中全部数据
select * from stu;
-- 查询指定列
select id,name,score from stu;
-- 给指定列设置别名(as也可以省略)
select id as '学号',name as '姓名' ,score as '成绩' from stu;
-- 查询表,并且结果不重复
select distinct * from stu;
条件查询
比较运算符说明
>、<、<=、>=、=、<>SQL中<>表示不等于,mysql中也可以使用!=
between 边界 and 边界表示一个返回,包含边界
in(值1,值2···)和值列表中匹配相等
like ‘规则’模糊查询(_代表一个字符,%代表任意个字符)
is null查询某一列为null的值
-- 查询分数大于90的行
select * from stu where score>90;
-- 查询生日在2000年到2010年之间的行
select * from stu where birthday between '2000-1-1' and '2010-1-1';
-- 查询名字是张三或李四的行
select * from stu where name in('张三','李四');
-- 查询姓名第一个字是李的行
select * from stu where name like '李%';
-- 查询分数为null的行
select * from stu where socre is null;
逻辑运算符说明
and 或&&
or 或 ||
not 或 !
-- 查询生日在2000年到2010年之间 并且 成绩在90以上的行
select * from stu where birthday between '2000-1-1' and '2010-1-1' and score>90;
-- 查询id为1001 或者 name为张三的行
select * from stu where id=1001 or name='张三';
-- 查询s成绩 不 为空的列
select * from stu where socre is not null;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值