zoukankan      html  css  js  c++  java
  • 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语句中方便查询使用的,并不会对数据库原来的文件起到 影响

  • 相关阅读:
    程序员数学
    [topcoder]FlowerGarden
    [leetcode]Trapping Rain Water
    [leetcode]Gray Code
    [leetcode]Unique Paths II
    hdu 4112 Break the Chocolate(ceil floor)
    【转】博弈-翻硬币游戏
    POJ 3710 Christmas Game
    hdu 3590 PP and QQ
    博弈进阶
  • 原文地址:https://www.cnblogs.com/mitoris/p/14231836.html
Copyright © 2011-2022 走看看