MySQL01

33 篇文章 0 订阅
3 篇文章 0 订阅

SQL包含6个部分:

一:数据查询语言(DQL):
保留字SELECT,WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。
二:数据操作语言(DML):
其语句包括动词INSERT,UPDATE和DELETE。
三:事务处理语言(TPL):
它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
四:数据控制语言(DCL):
它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。
五:数据定义语言(DDL):
其语句包括动词CREATE和DROP。
1.在数据库中,SQL语句大小写不敏感

表具有固定的列数和任意的行数

MySQL的常用存储引擎:

  InnoDB: 支持外键关系,支持事务(Transaction).    性能低.
  MyISAM:不支持外键关系,不支持事务管理.            性能高.

如果MySQL服务没有启动,则不能访问MySQL
net start 服务:开启一个服务,如:net start MySQL
net stop  服务:关闭一个服务,如:net stop MySQL

连接MySQL数据库:

  方式1:进入MySQL, 在命令行中输入密码;
  方式2:在运行中输入命令:
  格式:mysql -u账户 -p密码 -h数据库服务器安装的主机 -P数据库端口
  mysql -uroot -padmin -h127.0.0.1 -P3306
  若连接的数据库服务器在本机上,并且端口是3306。
  则可以简写: mysql -u root -p admin

数据库对象:存储,管理和使用数据的不同结构形式,如:表、视图、存储过程、函数、触发器、事件等。
-----------------------------------------------------------------------------
数据库分两种:
   1):系统数据库(系统自带的数据库):不能修改
        information_schema:存储数据库对象信息,如:用户表信息,列信息,权限,字符,分区等信息。
        performance_schema:存储数据库服务器性能参数信息。
        mysql:存储数据库用户权限信息。
        test:任何用户都可以使用的测试数据库。
   2):用户数据库(用户自定义的数据库):一般的,一个项目一个用户数据库。
        1 查看数据库服务器存在哪些数据库.
   SHOW DATABASES;
2 使用指定的数据库.
   USE database_name;
3 查看指定的数据库中有哪些数据表:
   SHOW TABLES;
4 创建指定名称的数据库.
   CREATE DATABASE database_name
5 删除数据库.
   DROP DATABASE database_name

MySQL中的数据用各种不同的技术存储在文件(或者内存)中。每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供不同的功能和能力。
-------------------------------------------------------------------------------------
MyISAM:拥有较高的插入,查询速度,但不支持事务,不支持外键。
InnoDB:支持事务,支持外键,支持行级锁定,性能较低。

InnoDB 存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但会占用更多的磁盘空间以保留数据和索引。

MySQL列类型               Java数据类型
-------------------------------------------------------
INT:                                int/Integer
BIGINT:                         long/Long

FLOAT                       float/Float
DOUBLE                    double/Double
DECIMAL                   BigDecimal

指定一个字段的类型为 INT(6),就可以保证所包含数字少于6个的值能够自动地用0填充。

FLOAT[(s,p)]   :DOUBLE[(s,p)]  : 小数类型,可存放实型和整型 ,精度(p)和范围(s);money double(5,2): 整数和小数一共占5位.其中小数占2位.
定点数据类型: DECIMAL,高精度类型,金额货币优先选择。

char(size )     定长字符,0 - 255字节,size指N个字符数,若插入字符数超过设定长度,会被截取并警告。
varchar(size) 变长字符,0 - 255字节,从MySQL5开始支持65535个字节,若插入字符数超过设定长度,会被截取并警告。

一般存储大量的字符串,比如文章的纯文本,可以选用TEXT系列类型。
注意:在MySQL中,字符使用单引号引起来。 相当于Java中字符串(String,StringBuilder/StringBuffer);

日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
注意:在MySQL中,日期时间值使用单引号引起来。 相当于Java中Date,Calender。

BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB:
存放图形、声音和影像,二进制对象,0-4GB。开发中,我们一般存储二进制文件保存路径。
------------------------------------------------------------
BIT:我们一般存储0或1,存储是Java中的boolean/Boolean类型的值。

1.先进入某一个数据库.

DROP TABLE IF EXISTS `t_student`;
CREATE TABLE 表名(
   列名1    列的类型   [约束],
   列名2    列的类型   [约束],
   ....
   列名N    列的类型   [约束]    
);

表的约束(针对于某一列):
1.非空约束:NOT NULL,不允许某列的内容为空。
2.设置列的默认值:DEFAULT。
3.唯一约束:UNIQUE,在该表中,该列的内容必须唯一。
4.主键约束:PRIMARY KEY, 非空且唯一。给一行数据做标识
5.主键自增长:AUTO_INCREMENT,从1开始,步长为1。
6.外键约束:FOREIGN KEY, A表中的外键列的值必须参照于B表中的某一列(B表主键)

查看表结构:
DESC table_name;
查看表的详细定义(DDL):
SHOW CREATE TABLE table_name;
删除表:
DROP TABLE table_name;

DROP TABLE IF EXISTS `t_student`;
CREATE TABLE t_student(
   id           BIGINT PRIMARY KEY AUTO_INCREMENT,
   name    VARCHAR(20) UNIQUE,
   age        INT DEFAULT 18,
   gender  VARCHAR(10) NOT NULL
);

执行DML 语句会有返回受影响的行: 指的是操作的数据行数

3.插入多条数据记录(MySQL特有)

消除结果中重复的数据。
SELECT  DISTINCK (列名)  FROM    table_name;

对NUMBER型数据可以使用算数操作符创建表达式(+  -  *  /)
对DATE型数据可以使用部分算数操作符创建表达式 (+  -)

设置列名的别名。as
4、如果别名中使用特殊字符,或者是强制大小写敏感,或有空格时,都需加单引号;

CONCAT(**,**,**)连接字符串

AND(&&) OR(||) NOT(!)

优先级            运算符
1                所有比较运算符
2                NOT
3                AND
4                OR

BETWEN...AND , IN(),IS NULL,LIKE

ORDER BY 列名1 [ASC(升序,缺省)/DESC],列名2 [ASC/DESC]...;

注意:如果列的别名使用 '' 则按此别名进行的排序无效;

LIMIT (currentPage-1)*pageSize,pageSize;

带有排序的分页操作:先排序,后分页

聚集函数:COUNT:统计结果记录数  Java中必须使用long接受;MAX:   MIN:   SUM:   AVG:

主键约束(PRIMARY KEY): 列的值非空且唯一.
外键约束(FOREIGN KEY): A表中的外键列的值必须参照于B表中的主键列;在MySQL中,InnoDB支持事务和外键.

修改表的存储引擎为InnDB: ALTER TABLE 表名 ENGINE='InnoDB';

等值连接:在WHERE加连接条件  where A.id=B.id

内连接:A [INNER] JOIN B ON A.列 = B.列

外连接查询:
  左外连接:查询出JOIN左边表的全部数据查询出来,JOIN右边的表不匹配的数据使用NULL来填充数据.
  右外连接:查询出JOIN右边表的全部数据查询出来,JOIN左边的表不匹配的数据使用NULL来填充数据.

左外连接还返回左表中不符合连接条件单符合查询条件的数据行。
右外连接还返回右表中不符合连接条件单符合查询条件的数据行。

在写连接查询的时候,on后面只跟连接条件,而对中间表限制的条件都写到where子句中。

第一、   单表查询:根据where条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的);然后根据select的选择列选择相应的列进行返回最终结果。

第二、   两表连接查询:对两表求积(笛卡尔积)并用on条件和连接类型进行过滤形成中间表;然后根据where条件过滤中间表的记录,并根据select指定的列返回查询结果。

第三、   多表连接查询:先对第一个和第二个表按照两表连接做查询,然后用查询结果和第三个表做连接查询,以此类推,直到所有的表都连接上为止,最终形成一个中间的结果表,然后根据where条件过滤中间表的记录,并根据select指定的列返回查询结果。

语法格式
SELECT    <selectList> FROM    A LEFT/RIGHT JOIN B ON (A.column_name = B.column_name)

使用表名前缀可以提高执行效率。如果使用了表的别名,则不能再使用表的真名

MySQL自身的数据库维护:
1.导出:mysqldump -u账户 -p密码 数据库名称>脚本文件存储地址
   mysqldump -uroot -padmin jdbcdemo >  C:/shop_bak.sql(磁盘文件路劲)
2.导入:mysql -u账户 -p密码 数据库名称< 脚本文件存储地址
   mysql -uroot -padmin jdbcdemo< C:/shop_bak.sql
Navicat工具的导入和导出:
Navicat工具的备份和还原:需要工具支持

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值