MySQL

MYSQL是一个功能齐全的关系数据库管理系统,通俗点讲就是存储和管理数据的。

MySQL的使用过程

  • 卸载
    1.关闭mysql服务
    1.手动关闭:我的电脑–>右键–>管理
    2.cmd–>services.msc,打开服务面板
    3.cmd–>net stop mysql。(注意获取cmd管理员权限)
    2.卸载
    3.删除数据存储文件
    * 找到mysql的安装目录。中my.ini文件
    datadir目录,删除

    • 使用
      • 登陆数据库:
        cmd–>mysql -uroot -p你自己的密码

      • 服务:系统后台进程

        • 启动服务: net start mysql 注意以管理员身份运行黑窗口
        • 停止服务: net stop mysql
    • 配置
      修改mysql的密码步骤:
      1. 停止mysql服务 运行输入services.msc 停止mysql服务
        或者 cmd – net stop mysql
      2. 在cmd下 输入 mysqld --skip-grant-tables 启动服务器 光标不动 (不要关闭该窗口)
      3. 新打开cmd 输入mysql -u root -p 不需要密码
        use mysql;
        update user set password=password(‘123456’) WHERE User=‘root’;
      4. 关闭两个cmd窗口 在任务管理器结束mysqld 进程
      5. 在服务管理页面 重启mysql 服务
  • SQL:结构化查询语言

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

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

DDL

  • 查询MySQL中所有的库 show databases;
  • 创建数据库 create database 数据库名; create database mydb;
  • 删除数据库 drop database 数据库名 ; drop database mydb;
  • 修改库的编码:alter database mydb character set ‘utf8’;
  • 查询建库语句 show create database mydb;
    • | mydb | CREATE DATABASE mydb /*!40100 DEFAULT CHARACTER SET utf8 */
  • 建表
列名/字段名/表头 是要有数据类型的
常见的字段的数据类型
* int:整型 id int,
* double:浮点型,例如double(6,2)表示最多6位,其中必须有2位小数,即最大值为9999.99;
											money double(5,2)
*char:固定长度字符串类型;
								name char(10) 最大存10个字符		"张三"
* varchar:可变长度字符串类型;
								name varchar(10) 最大存10个字符	"张三"
					
text:字符串类型;存大格式的文本 比如存个小说 一般不用
blob:字节类型;存字节类型的数据  比如电影字节  图片字节 但是一般不会把字节数据存到数据库当中
date:日期类型,格式为:yyyy-MM-dd;
time:时间类型,格式为:hh:mm:ss
datetime:日期时间类型   yyyy-MM-dd hh:mm:ss  
* timestamp:时间戳类型	 yyyy-MM-dd hh:mm:ss
							* 如果该类型的字段不给赋值,则默认当前时间
创建表的语法
首先你要选择库,也就是说你要建的这张表要放到哪个库中
use mydb;
//create table 表名(字段名 数据类型(长度),字段名2 数据类型2(长度));
create table student(
  sid int,
  sname varchar(20),
  sal double(5,2),
  mydate timestamp
);
查询该库下所有的表  show tables;
查询表结构  desc student; 

删除表
drop table student;

修改表名 alter table stu rename to student;

对表中的字段进行操作  alter
-- 添加一个字段 add
alter table student add(age int);
-- 删除一个字段 drop
alter table student drop age;
-- 修改表中的字段的数据类型 modify
alter table student modify sname char(10);
-- 修改字段名 change
alter table student change sal mysal double(6,3);

这里要着重提一下时间类型的数据,它可以用Date()函数来取日期的一部分用来日期的查询。时间戳用unix_timestamp(),
date_format(时间,格式)来获取部分时间。

DQL:对表中的数据进行查询 select

-- 查询表中所有的记录
select * from student;    * 统配所有字段
select sid,sname,mysal,mydate from student; -- 即便你要查询所有字段,建议把字段名写出来
-- 查询个别字段
select sid from student;
select sid,sname from student;

-- 条件查询
* 条件查询:where 子句
			=、!=、<>(不等于)、<、<=、>、>=;
			BETWEEN…AND;  在什么范围之间
			IN(set);
			IS NULL;为空
			IS NOT NULL 不为空
			AND; 并且
			OR;   或者
			NOT;非
//查询工资在 2000----3000之间			
select * from emp where sal>=2000 and sal<=3000;
//跟上面一样  between 2000 and 3000;
select * from emp where sal between 2000 and 3000;

//查询奖金是 300 500 的

select * from emp where comm=300 or comm=500;
//in() 和上面的意思一样
select * from emp where comm in(300,500);

//查询奖金不为null的人
//判断为null 或不为 null 用关键字来判断 
select * from emp where comm!=null; // 查不出来
// is null 为空  is not null 不为空
select * from emp where comm is null;
select * from emp where comm is not null;




* 语法:
			SELECT 
				selection_list /*要查询的列名称*/
			FROM 
				table_list /*要查询的表名称*/
			WHERE 
				condition /*行条件*/
			GROUP BY 
				grouping_columns /*对结果分组*/
			HAVING 
				condition /*分组后的行条件*/
			ORDER BY 
				sorting_columns /*对结果分组*/
			LIMIT 
				offset_start, row_count /*结果限定*/

模糊查询 like

通配符 % 通配多个任意字符   _ 通配单个任意字符


我要查询名字中包含S的员工信息
select * from emp where ename like '%S%';
我要查询以S开头的员工
select * from emp where ename like 'S%';
我要查询以S结尾的人
select * from emp where ename like '%S';
我要查询第二个字符是D的人
select * from emp where ename like '_D%';
我要查询名字是五个字符组成的人
select * from emp where ename like '_____';

字段控制

as 给字段起别名 只是用于展示的时候好看一些 as 可以省略不写
select ename as xingming,sal gongzi,comm as jingjin from emp;

字段运算
我要查询这个员工一年的工资收入,不算奖金
select *,sal*12 as totalSal from  emp;

null值参与运算 结果是null
我要查询这个员工一年的工资收入,算奖金
select *,sal*12+comm as totalSal from  emp;

我们怎么把null当成其他值来运算, ifnull 来处理null值
select *,sal*12+ifnull(comm,0) as totalSal from emp;

* 去除重复记录   比如我查询工资是3000的 distinct
select sal from emp where sal=3000;
select distinct sal from emp where sal=3000;




排序 order by

查询工资由小到大排序
select * from emp order by sal ASC; -- ASC 升序排列  默认
select * from emp order by sal DESC; -- DESC 降序排列   -- 注释

工资降序排 奖金降序排 可以定义第二排序条件
select * from emp order by sal DESC,comm ASC;


select * from emp order by ename ASC;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值