day41_MySql

SQL:结构化查询语言

DDL:操作数据库、表

DML:增删改表中记录

DQL:查询表中的记录

DCL:管理用户与授权

​ mysql的安装与配置

1.详情参见安装文档

2.安装版卸载:需要先找到my.ini中的datadir路径,一般默认是C:/program data中的Mysql文件夹,需要将它删除 然后卸载 (卸载时mysql服务必须处于启动状态)

3.配置版卸载:

  • ​ 使用管理员权限打开cmd 输入net stop mysql
  • ​ 输入mysqld -remove
  • ​ 删除本地安装的mysql目录文件夹

4.mysql配置

​ mysql服务启动

​ 1.通过管理员权限cmd net start mysql

​ 2.通过Windows服务窗口 cmd ---> services.msc

​ mysql登录

​ 1.借助于cmd

​ mysql -u登录账号 -p登录密码 没有密码直接回车

​ mysql -h连接服务器的ip地址 -u登陆账号 -p登陆密码 如果权限不够,给 root账号开启连接mysql连接权限 :

​ 0.使用mysql数据库 use mysql

​ 1.grant all privileges on *.* to root@'%' identified by '连接服务器的密码' with admin option/ with grant option 权限开启

​ 2.flush privileges 刷新新的系统权限

​ 2.借助于可视化管理工具

​ mysql退出

​ quit

​ exit

mysql的目录结构

​ 1.安装目录结构 basedir目录中(my.ini中显示)

​ bin 二进制文件 mysql可执行脚本 如:mysqld.exe

​ data数据 mysql运行需要的数据文件还有mysql运行的日志文件

​ include C语言的头信息

​ lib mysql运行需要支持的一些类库 jar文件

​ share 运行的一些错误信息

​ my.ini 一些配置信息

​ 2.数据目录结构 datadir目录中

​ 数据库:一个个文件夹

​ 表:一个个文件

​ 数据:一条条记录

​ 数据库管理系统、数据库和表的关系

​ 可以使用数据库管理系统创建多个数据库,比如java31/java21 数据库... ,一般一个项目 对应的是一个数据库,一个数据库可以创建多张表。在项目中,数据库中的表映射Model 类(pojo、model、entry)

​ 后台中的model类 一般用于临时存储从数据库中查询出来对应表中的数据,从user表(字段)查询出来一条记录,这条记录对应的就是后台服务器中的一个user对象(属性)

SQL操作数据库

​ 作用:

  1. ​ 是一种数据库的一种查询语言的标准,对所有的数据库都支持
  2. ​ 不同的数据库SQL语句可能有点不同(方言),MySql Oracle DB2

sql语句分类:

  1. ​ DDL:操作数据库、表 数据定义语言 data definition language
  2. ​ DML:增删改表中记录 数据操作语言 data manipulation language
  3. ​ DQL:查询表中的记录 数据查询语言 data quary language
  4. ​ DCL:管理用户与授权 数据控制语言 data control language

DDL语言

​ 1.操作数据库

创建数据库  方式很多  create
​			create database 数据库名;
​			create database if not exists 数据库名; //创建的时候先判断是否存在
​			create database 数据库名 character set 编码字符集;//指定编码字符集
​		查询数据库    retieve
​			查询当前数据库服务器所有的数据库
​				show database
​			查询某个数据库的编码字符集
​				show create database 数据库名称
​		修改数据库   update
​			修改数据库的编码字符集
​				alter database 数据库名称  character set 编码字符集						
​		删除数据库  delete / drop
​			drop database 数据库名称
​			drop database if exists 数据库名称     判断是否存在并删除

2.操作表

1.创建表   
    create table 表名(
		列名1 数据类型,
    	列名2 数据类型,
    	...
	);
	数据类型:
        整数类型  tinyint(微整型1)  smallint(小整形2) mediumint(中整形3)  int(integer4)
        小数类型  double(8)   float(4)
        日期类型  date(年月日) time(时分秒)  datetime(年月日时分秒)   timestamp(时间戳、年月日时分秒,如果没有赋值,会自动获取当前时间自动赋值) 
        字符串类型 char(固定长度的字符串)  varchar(可变长度的字符串、使用几个字符就占几个字符)
        二进制类型 tinyblob(允许0-255个字节) biglargeblob(允许0-65535字节) longblob(非常大)
        文本类型 tinytext(允许长度为0-255字节) text(允许0-65535个字节)  longtext(非常大)
        
2.查看表
	show tables; 查看当前使用的数据库下所有的表
	desc 表名;   描述该表结构
	show create table 表名;   查看创建的表 ---> 查看该表创建时使用的sql语句
	create table 新表名 like 旧表名;   快速创建一个表结构相同的表(复制)
	
3.修改表
	alter table 旧表名 rename to 新表名;  修改表名
	alter table 表名 character set 编码字符集;  修改编码字符集
	alter table 表名 add 列名 数据类型;  给表添加一列字段
	alter table 表名 drop 列名;  删除一列
	alter table 表名 change 旧列名 新列名 新数据类型;  修改列名和类型
	alter table 表名 modify 列名 新数据类型;
4.删除 
	drop table 表名; 删除表
	drop table if exists 表名; 删除前判断

大多数情况下我们直接通过图形化管理工具进行操作

DML 增删改数据库中表的数据

1.添加数据
	insert into 表名(列名1,列名2,...) values(值1,值2,...);
	注意事项:
		列名和值的类型保持一致(一一映射关系)
		如果表名后面没有指定列名,默认为给该表所有的列添加对应的值(依然有序)
			insert into 表名 values(值1,值2,...);
		除了数字类型外(int double),其他类型一律使用引号(单双引号不区分)
2.删除数据
	delete from 表名 [where 条件]   []代表可选操作
	根据表中某个数据或某些字段信息删除   例如  where username = '小王';
    注意事项:
    	如果不跟条件,则删除整张表中数据
    	删除表所有的记录 delete from student;(按数据删除) / truncate table 表名;(先把表删除,然后再创建一模一样的空表)
    	如果条件中的字段值有重复的,凡是符合条件的都删除
3.修改数据
	update 表名 set 列名1 = 替换值1 ,列名2 = 替换值2 ,...,列名n = 替换值n [where 条件]
	注意事项:
		如果不带条件,则会修改表中所有记录

DQL查询表中的记录

​ 普通查询

select 需要查询的信息(列名1,列名2...) / *(表中所有信息)from 表名 [where 条件];
完善后:
	select
        字段列表	
	from
        列表名称	
	where
		条件列表
	group by
		分组字段
	having
		分组之后的条件
	limit
		分页限定

​ 去重查询 distinct

​ ifnull表达式 ifnull(表达式1,表达式2)

​ 表达式1:代表哪个字段需要判断是否为null

​ 表达式2:如果该字段值为null后面的进行替换

​ 起别名操作 (多表操作)

​ 表名 as(可省略) 新的表名

​ 查询出的字段信息 as 新名字

​ 当查询同一张表,并进行多次查询时,可以使用别名来实现。

​ 注意事项:起别名只是在sql语句中方便查询使用的,并不会对数据库原来的文件起到 影响

原文地址:https://www.cnblogs.com/mitoris/p/14231836.html