• MySQL入门 和 SQL语句


    1 什么是MySQL?

    MySQL原本是一个开放源码的关系数据库管理系统,把数据保存在不同的表中,而不是堆一起,所以它的灵活性强、速度也快,

    而且因为它体积小、速度快、成本低、最主要是开放源码,所以中小型的公司都使用它作为网站数据库。

    SQL是MySQL中用来访问数据库的结构化查询语言

    2 MySQL特点?

    体积小 、使用成本低 、可移植性强 、适用用户范围广

    3 什么是数据库?

    【数据库 】DataBase(DB)
    数据库就是按照数据结构来组织,存储和管理数据的仓库
    数据库提供了很多功能,可以通过SQL语句来定义来操作数据

    【数据库管理系统】(DataBase Management System,DBMS

    操作和管理数据库的大型软件,用于建立、使用和维护数据库

    常见的数据库管理系统

    MySQL : 开源免费的数据库, 小型的数据库, 被Oracle收购了,  但是MySQL的应用场景多

    Oracle   : 收费的大型数据库 ,但是Oracle要比MySQL强大, Oracle里面的数据库管理、监控基本都是配套的。Oracle收购 SUN公司、收购MySQL

    SqlServer: Microsoft 公司收费的中型的数据库。 C#、.net等语言常使用

    数据库三大范式:

    第一范式:原子性,不可分割

    第二范式:就是完全依赖,没有部分依赖;【表中必须有一个主键;没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分】

    第三范式:就是没有传递依赖

    【关系型数据库】

    关系: 一张二维表,每个关系必须有一个关系名,也就是俗称的表名
    字段/属性:二维表中的一列
    记录/元祖:二维表中的一行
    超键(super key):在关系中能唯一标识元祖的属性集称为关系模式的超键
    候选键(candidate key):不含有多余属性的超键, 
    主键(primary key):用户选作元祖标标识一个候选键
    外键:用于关联两张表
    范式:符合某一级别的关系模式的集合,构造数据库的表必须遵循一定的规则

    4 MySQL安装

     1 安装

    参考MySQL安装图解.doc

     

    2 配置MysQL服务

    找到你所安装MySQL的 目录, 找到bin 里面的这个应用程序

     

    打开就是这个样子的

     

     3 启动和关闭  (以管理运行cmd命令窗口)

     

     4 登录

    格式1:cmd>  mysql –u用户名 –p密码

    例如:mysql -root–root

    格式2:cmd>  mysql --user=用户名 --host=ip地址 --password=密码

    cmd命令窗口

    启动服务

    任务管理器--mysql

    控制面板---服务--mysql

    cmd ---start mysql

    2.启动mysql

    1.开始--mysql--命令符

    2.cmd: mysql -uroot -proot

    3.Sqlyog:视图化工具

    3.mysql的命令

    --设置cmd显示的编码集 set names gbk;

    --help 数据类型 mysql的帮助命令 在cmd中写

    5  SQLyog 安装与使用

    安装 : 提供的SQLyog 是免费的,可以直接使用

    使用:

     输入用户名、密码,点击连接按钮,进行访问MySQL数据库进行操作

     在Query窗口中,输入SQL代码,选中要执行的SQL代码,按F8键运行,或按执行按钮运行。

     

    6 什么是SQL?

    SQL全称是“结构化查询语言(Structured Query Language)
    SQL(STructured Query Language)是一种资料库查询和程式设计语言,用於存取资料以及查询、更新和管理关联式资料库系统。
    SQL同时也是数据库文件格式的扩展名。

    什么是sql注入?

    就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令

     

    7 事务

    事务:是数据库中提供的一种机制,一个操作序列。它包含了一组数据库操作命令,将这些命令作为了一个整体,是一组必须要同时完成或同时取消的操作组成,是不可分割的工作单元

    事务的属性(ACID):

    原子性(Atomicity) : 事务是一个完整的操作,不可再分,必须作为一个整体提交或回滚

    一致性(Consistency): 事务完成时,数据应该保持一致,如银行转账:2个用户的总金额应该在事务前后金额一致

    隔离性(isolation) :当有事务对数据进行操作时候,其他事务应该要等待该事务操作完毕

    持久性(durability) : 事务一旦提供成功,事务的结果是永久的改动到数据库

     

    8 SQL语句

    1创建表

    1.删除表 drop table [if exists] 表名;

    2.创建表 create table [if not exists] 表名 (

    字段1 数据类型 [字段属性|约束][索引][注释],
    字段n 数据类型 [字段属性|约束][索引][注释]

    )[表类型][表字符集][注释];

    【注意:1、如果数据库名,表名,字段名等与保留字冲突,用【撇号(‘)】括起来
    2、多个字段使用【逗号】隔开
    3、单行注释:# 多行注释:/*…*/
    4、设置为自动增长: auto_increment

    3.查看表 show tables;

    4.显示创建表的sql show create table 表名;

    5.查看表的定义 describe 表名; 或者 desc 表名;

    6.显示当前表状态值 show table status like '表名';

    7.清空表数据,序列号从1开始 truncate table 表名;

    8.设置mysql显示编码 set names gbk ; //解决查询出中文数据乱码问题

    示例:
    drop table if exists 表名

    create table if not exists 表名 #if not EXISTS判断是否存在
    (
    id int primary key comment '主键' auto_increment, #主键,自动增长(默认从1开始,每次自动增长1) COMMENT 注释的意思

    name varchar(50) not null comment '姓名' UNIQUE key, #unique key 唯一约束

    address varchar(50) default '地址不详' comment '地址', #default ‘默认值’ 【注意:如果有中文,需指明charset='utf8'】

    testId Int unsigned #unsigned无符号

    primary key(主键列[,主键列2])#可以定义复合主键 示例,primary key(id,name)

    )comment ='测试' charset = 'utf8' auto_increment=10

    #comment ='测试'表的注释。charset='utf8' 设置表的编码 【auto_increment=10 设置从10开始增长】

    2 修改表

    1.修改表名 alter table 旧表名 rename 新表名; #表名在数据库中是唯一的

    2.添加字段 alter table 表名 add 字段名 数据类型 属性

    3.删除字段 alter table 表名 drop 字段名

    4.修改字段 alter table 表名 change 旧字段名 新字段名 数据类型 [属性] #如果不需要修改数据类型使用写出源数据类型,不能为空

    5.更新字段 alter table 表名 modify 字段名 数据类型

    3 约束

    1.添加主键 alter table 表名 add constraint 键名 primary key (列名[,列名2])

    2.添加唯一 alter table 表名 add constraint 键名 unique key (列名[,列名2])

    3.添加外键 alter table 表名 add constraint 键名 foreign key (外键列) reference 主表名(列名)

    4.添加默认 alter table 表名 alter 列名 set default '默认值'

    5.添加非空 alter table 表名 modify 列名 INT(5) NOT NULL;

    删除默认值:alter table 表名 alter 列名 drop default;
    删除主键: alter table 表名 drop primary key;
    删除唯一: alter table 表名 drop index 唯一约束名;

    MySQL的分页关键字是:limit

    4 子查询

    --方式一:用表连接

    select studentName,studentResult from student s

    inner join result r on s.studentNo=r.studentNo

    inner join subject b on r.subjectNo = b.subjectNo

    where subjectName ='java' and studentResult<60

    --方式二:用子查询 【返回多个值使用in】

    SELECT StudentName FROM Student where studentNo in

    ( select studentNo from result r inner join subject s on r.subjectNo =s.subjectNo

    where studentResult<60 and subjectName ='java') 【思考,还可以再拆为子查询】

    9 运算符

    比较运算符

    >  <  <=   >=   =  <>

    大于、小于、大于(小于)等于、不等于

    BETWEEN  ...AND...

    显示在某一区间的值(含头含尾)

    IN(set)

    显示在in列表中的值,例:in(100,200)

    LIKE ‘张_’

    模糊查询,Like语句中,% 代表零个或多个任意字符,_ 代表一个字符,例first_name like ‘_a%’;

    IS NULL

    判断是否为空

    逻辑运算符

    and

    多个条件同时成立

    or

    多个条件任一成立

    not

    不成立,例:where not(salary>100);

    聚合函数:

    特点:只对单列进行操作

    常用聚合函数:

    sum():求某一列的和

    avg():求某一列的平均值

    max():求某一列的最大值

    min():求某一列的最小值

    count():求某一列的元素个数

    字段类型:

    常用的字段类型:

    分类

    类型名称

    说明

    整数类型

    tinyInt

    很小的整数

    smallint

    小的整数

    mediumint

    中等大小的整数

    int(integer)

    普通大小的整数

    小数类型

    float

    单精度浮点数

    double

    双精度浮点数

    decimal(m,d)

    压缩严格的定点数------开发时用

    日期类型

    year

    YYYY  1901~2155

    time

    HH:MM:SS  -838:59:59~838:59:59

    date

    YYYY-MM-DD 1000-01-01~9999-12-3

    datetime-开发用

    YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59

    timestamp

    YYYY-MM-DD HH:MM:SS  1970~01~01 00:00:01 UTC~2038-01-19 03:14:07UTC

    文本、二进制类型

    CHAR(M)            

    M为0~255之间的整数

    VARCHAR(M)  

    M为0~65535之间的整数

    TINYBLOB

    允许长度0~255字节

    BLOB

    允许长度0~65535字节

    MEDIUMBLOB

    允许长度0~167772150字节

    LONGBLOB

    允许长度0~4294967295字节

    TINYTEXT

    允许长度0~255字节

    TEXT

    允许长度0~65535字节

    MEDIUMTEXT

    允许长度0~167772150字节

    LONGTEXT

    允许长度0~4294967295字节

    VARBINARY(M)

    允许长度0~M个字节的变长字节字符串

    BINARY(M)

    允许长度0~M个字节的定长字节字符串

    分组:

    SQL语法关键字GROUP BY 和 HAVING

  • 相关阅读:
    JDK和TOMCAT环境变量配置
    MEF(Managed Extensibility Framework )的入门介绍
    这样的数据导出你知道?
    ListBox实现拖拽排序功能
    各种技术资源汇总
    大话数据结构-排序
    大话数据结构-查找
    CheckListBox的实现方式分析
    listbox里面添加WrapPanel ,支持自适应换行
    RESTful 接口实现简明指南
  • 原文地址:https://www.cnblogs.com/jingjinggood/p/12104811.html
Copyright © 2020-2023  润新知