数据库day(1)

一、数据库

1.1 数据库的概念

存储数据的仓库

1.2 黑窗口登录mysql

cmd–>mysql -uroot -p密码

1.3 启动,停止mysql服务(系统后台进程)

  • 启动服务: net start mysql
  • 停止服务: net stop mysql

1.4 黑窗口修改mysql密码步骤

  • 停止mysql服务,运行输入services.msc停止mysql服务
  • 在cmd下 输入 mysqld --skip-grant-tables 启动服务器 光标不动 (不要关闭该窗口)
  • 新打开cmd 输入mysql -u root -p 不需要密码 use mysql;
    update user set password=password(‘abc’) WHERE User=‘root’;
  • 关闭两个cmd窗口 在任务管理器结束mysqld 进程
  • 在服务管理页面 重启mysql 服务

二、sql语言

2.1 概念

通过sql语言可以操作所有的关系型数据库每种数据库之间存在差异,称为”方言"。

2.2 sql分类

  • DDL(Data Definition Language)
    数据定义语言,用来定义数据库对象:库、表、列等;
  • DML(Data Manipulation Language)
    数据操作语言,用来定义数据库记录(增、删、改);
  • DCL(Data Control Language)
    数据控制语言,用来定义访问权限和安全级别;
  • DQL(Data Query Language)
    数据查询语言,用来查询记录(数据);

三、DDL语句

3.1 操作数据库

3.1.1 创建数据库

create database 数据库名;

3.1.2 删除数据库

drop database 数据库名;

3.1.3 修改数据库

Alter database 数据库名 character set 要修改的字符集名称

3.1.4 查询所有的数据库

show databases;

3.1.5 查询创建数据库语句

show create database 数据库名称;

SHOW CREATE DATABASE apple;

结果:
在这里插入图片描述

3.2 操作数据表

3.2.1 列的数据类型

  • int : 整型
  • double 浮点型
  • char 固定长度字符串
  • varchar 可变长度字符串
  • text 字符串类型:存大格式的文本 如:小说
  • blob 字节类型
  • :存字节类型的数据
  • date 日期类型,格式为:yyyy-mm-dd
  • time 时间类型 格式为:hh:mm:ss
  • datetime 日期时间类型 yyyy-mm-dd hh:mm:ss
  • timestamp 时间戳类型 yyyy-mm-dd hh:mm:ss( 如果该类型的字段不给赋值,则默认当前时间

3.2.2 创建数据表的格式

create table 表名(
列名1 类型1,
列名2 类型2,

列名n 类型n
);

3.2.3 删除数据表

drop table 表名

3.3.4 修改数据表

  • 添加列
    Alter table 表名 ADD(列名 列类型),
ALTER TABLE works_on ADD(age INT);
  • 修改列类型
    Alter table 表名 modify 列名 新的列类型
ALTER TABLE works_on MODIFY age CHAR(4);
  • 修改列名
    Alter table 表名 change 旧列名 新列名 新的列类型
ALTER TABLE works_on CHANGE age age2 CHAR(3);
  • 删除列
    Alter table 表名 drop 列名
ALTER TABLE works_on DROP age2;
  • 需改表名称
    Alter table 旧表名 rename to 新表明
ALTER TABLE works_on RENAME TO works_off;

四、DML语句

4.1.1 DML语句的功能

对表中的数据进行操作

4.1.2 增加表中数据

insert into 表名(列名1,列名2…)values(值1,值2…)

insert into works_off values(12,'a','as','2013-02-21 12:21:21');

4.1.3 注意

如果对标准的一列的所有值都增加,则可以忽略列名

4.1.4 删除表中数据

delete from 表名(where 条件)
truncate table 表名 (删除所有记录)(先删除表,再

delete from works_off where emp_no = 12;

创建表)

TRUNCATE TABLE works_off;

4.1.5 修改表中数据

update 表名 set 列名1 = 值1, 列名2 = 值 2…[where条件]

UPDATE works_on SET emp_no = 23 WHERE emp_no = 9031;

五、DQL查询语句

5.1 语法

  • select 列名 from 表名 where 条件
SELECT * FROM works_on;

  • group by
    对结果进行分组
SELECT * FROM works_on GROUP BY job;
  • having
    分组后进行筛选
SELECT * FROM works_on GROUP BY job HAVING job = 'clerk';
  • order by
    对结果进行排序
    ASC默认升序
    DESC降序
SELECT * FROM works_on GROUP BY job ORDER BY emp_no;

结果:
在这里插入图片描述

  • limit
    对结果进行限定,比如限制输出数据的行数
SELECT * FROM works_on GROUP BY job ORDER BY emp_no LIMIT 0,2;

5.2 条件查询

  • between…and
    结果在xx与xx之间

  • in(Set)
    结果在某个值的集合中

  • is null
    用来判断结果是否为空

  • is Not null
    不为空

  • and
    并且

  • or
    或者

  • not
    取反

5.3 模糊查寻 like

  • “%”
    匹配多个任意字符

  • “_”
    匹配单个任意字符

5.4 字段控制

5.4.1 修改字段的别名 AS

  • 给字段起别名
    如 select name as 姓名…
SELECT job AS 工作 FROM works_on;
  • 给运算字段起别名
    如 select (工资+奖金)as 总收入…

  • 给表起别名
    如:select stu.name, stu.age from student as stu;

SELECT job AS 工作 FROM works_on;

5.4.2 字段运算

  • null 参与的运算,结果都为null
  • ifnull(字段名称,替换值)
    如果字段值为null,则用替换值替换。
SELECT (emp_no + IFNULL(comm,0)) AS 总数据 FROM works_on;

5.4.3 去除重复记录

distinct

SELECT DISTINCT job FROM works_on;

5.5 聚合函数

  • count
    统计某一列符合条件要求的值的个数
SELECT COUNT(job) AS 职员数量 FROM works_on WHERE job = 'clerk';
  • MAX
    计算指定列的最大值
SELECT MAX(emp_no)  FROM works_on;
  • MIN
    计算指定列的最小值
SELECT MIN(emp_no)  FROM works_on;
  • AVG
    计算指定列的平均值
 select avg(emp_no)  from works_on;

5.6 分页查询 limit

  • limit n,m

  • n是开始记录的索引

  • m是每一页要显示的信息条数

  • n = (页码-1)*m

  • oracle: rownum 分页方言

  • sqlserver :top 分页方言

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值