MySql数据库之-------java编程所需要的知识(基础)

简单介绍:

SQL语言都基于SQL92标准,但各数据库之间又存在差异。目前最新的标准为SQL99,它同样兼容SQL92。

SQL-Structured Query Language结构化查询语言。

DDL – 数据定义语言Data Definition Language
建库、建表、设置约束等:
create\drop\alter
DCL – 数据控制语言 Data Controll Language
数据授权,收回授权
grant\revoke
DML-数据操纵语言Data Manipulation Language。
主要指数据的增删查改
Select\delete\update\insert\call

基本操作:

mysql –uroot –p1234 //登录
mysql> show databases; //显示所有已经存在的数据库
mysql> use test; //使用某个数据库
mysql> show tables; //显示当前数据库中的所有表
mysql> help; //显示
mysql> desc tableName; //显示表结构
导出数据库中的所有表:在命令行模式下:
shell/> mysqldump –uroot –p1234 –d dbName > d:\a\a.sql
导入:导入时,必须要先手工建立一个新的数据库:
mysql>use dbName;
Mysql>source d:\a\a.sql
或:
shell/>mysql –uroot –p1234 –D dbname < d:\a\a.sql (注意参数-D是大写)
mysql>show databases; //显示所有已经存在的数据库
mysql>use test; //使用某个数据库
mysql>show tables; //显示当前数据库中的所有表
mysql>help; //显示
mysql>desc tableName; //显示表结构


简单的数据操作:

1、建立数据库。DDL –数据定义语言
         ceate database abc;
2、创建一个表。DDL
         create table stud(…..);
3、向其中写入一行数据。DML 
     
  insert into 
4、查询此行数据。DML
   
  select * from 表名

5、删除此行数据。DML
       delete  from 表名 where sid="";  

6、删除此表。DDL

 drop table 表名

7、删除数据库 DDL

drop database 数据库名


建数据库的语法\建数据表的语法:

建库:
Create database 数据库的名;
处理中文乱码问题:
Create database 数据库名 character set UTF8;//指定字符编码
建表:
Create table 表名(
     字段名   数据类型(长度),…
)
;

 MySql的数据类型:

比较经常使用的数据类型为:
int、varchar、char、numeric(double,float)、text

Char与varchar的区别:

Char是定长数据,如果char(10)但里面只保存了1个字符,则它的长度仍然是10.-但Mysql对查询的结果进行了处理 ,所以使用legth无法判断它所占用的长度。
Varchar(10)时,如果里面只保存了1个字符,则它的长度为1,所以,varchar被称了可变长字符。
Char的取值范围为0-255
varchar的取值范围为0-65535.如果是UTF-8数据类型则可以保存0-21844字符。
<span style="white-space:pre">	</span>varchar(20)  ----可变的char数组,类似Java当中的String
<span style="white-space:pre">	</span>char(20)   ----固定长度的char数组


Int和numeric:
Int类型不能保存小数位。
Numeric可以保存小数位。如numeric(4,2)则可以表示最大数据为:99.99。注意4是总位数,2是小数位数。


 的操作(增删改查)

创建和修改表

创建表:
Create table stud(
id int,
name varhcar(30)
);
创建时同时指定不能为空:
Create table tb(
     name varchar(20) not null
)
修改表:
Alter table stud
      add sex char(1);  /*添加一个新的字段 */


Alter table stud
      drop column sex;  /* 删除sex字段*/

<span style="white-space:pre">	</span>

插入数据

字符类型的数据前后要添加’’单引号。
插入数据 

没有指定列时,要给出完整数据,且要对应顺序:
Insert into stud values(1,’Tom’,’1’);
优化写入,指定列:
Insert into stud(id,name) values(1,’jack’);
//插入记录,当数据不全时,要指定列名
INSERT INTO stud(id,sname,age,score) VALUES(1010,'李小明',25,90);
查询 (Select)

查询数据:
Select * from stud; -- 通过*将所有列显示出来

查询指定的列:
Select id ,name from stud
另名:as

Select id as 编号,name as 姓名 from stud; //不建议使用中文
或是省去as关键字:
Select id 编号,name 姓名 from stud;
给表也取个别名:
Select s.id,s.name from stud as s;

修改和删除

修改数据:
Update stud set name=‘Jack’;
同时修改两个值:
Update stud set name=‘Rose’,id=22 where id=1;
在原值上面进行累加操作:
Update product set price=price*1.1  -所有商品的价格上涨10%

删除数据:
Delete from stud /*全部删除*/
Delete from stud where id=1; /*删除指定的行 */
也可以使用
TRUNCATE TABLE stud; //它与delete的区别是不记录操作日志,即无法恢复数据。  
where 字句
 Select 字段 From 表名 where 条件 and  条件 or 条件 
Update table tableName set .. Where 条件
Delete from tableName where ….

条件查询
where关键字。(Name=‘dd’ and age=33) or addr=‘BJ’

between X and Y关键字。 在什么之间

in关键字和not in.  In(‘….’,’aafad’,’afasdf’);

and和or关键字。

使用like实现模糊查询。%

通过is null判断是否为null。(要区分空字符串与null的区别)
《《实验中的例子》》
//※范围查询
//查询年龄在24-26之间的学生信息
//连续区间内的查询
SELECT * FROM stud WHERE age>=24 AND age<27;
//用BETWEEN是左右都包含,如下功能是[24,26]
SELECT * FROM stud WHERE age BETWEEN 24 AND 26;
//离散的多个
SELECT * FROM stud WHERE age=24 OR age=38;
SELECT * FROM stud WHERE age IN(24,26,30);


//※模糊查询LIKE  参数:%(任意匹配), _(匹配一个)
//查询姓“王”的学生信息
SELECT * FROM stud WHERE sname LIKE '王%'
//查询姓“王”且名为单字的学生信息
SELECT * FROM stud WHERE sname LIKE '王_';
//查询姓“王”且名为双字的学生信息
SELECT * FROM stud WHERE sname LIKE '王__';
//查询姓名中包含“五”字的学生信息
SELECT * FROM stud WHERE sname LIKE '%五%';

聚合函数

Count(*)行数量—不包含空行 null 
avg平均。
Sum求和。
Max最大,
Min最小。
Distinct-去除相同的信息。
Exists存在判断
*---------聚合函数《《 例子》》-----*/
<span style="white-space:pre">	</span>SELECT COUNT(*) AS TEMPTABLE FROM stud  //统计所有的数量
<span style="white-space:pre">	</span>SELECT COUNT(sname) AS TEMPTABLE FROM stud  //统计的时候是不算NULL的
//统计有年龄,且有分数的人数
<span style="white-space:pre">	</span>SELECT COUNT(sage) AS TEMPTABLE FROM stud WHERE sname IS NOT NULL;
//统计平均值
<span style="white-space:pre">	</span>SELECT ROUND(AVG(score)) AS roundsocre FROM stud 
<span style="white-space:pre">	</span>SELECT SUM(score) AS ss FROM stud
<span style="white-space:pre">	</span>SELECT MAX(sage) AS maxage FROM stud
//查询年龄最小的那个人的名字
<span style="white-space:pre">	</span>SELECT sname FROM stud WHERE sage=(SELECT MIN(sage) FROM stud)

字符串处理函数

<span style="white-space:pre">	</span>Length(str) - 求字符串长度
<span style="white-space:pre">	</span>Ltrim(str) - 去掉左边的空格
<span style="white-space:pre">	</span>Rtrim(str) - 去掉右边的空格
<span style="white-space:pre">	</span>Left(str,n); - 从左边取出n个字符
<span style="white-space:pre">	</span>Right(str,n); - 从右边取出n个字符
<span style="white-space:pre">	</span>Substring(str,begin,end) -返回子串
<span style="white-space:pre">	</span>Reverse(str) –返回颠倒的字符串
<span style="white-space:pre">	</span>Lower(str) - 转成小写
<span style="white-space:pre">	</span>Upper(str) - 转成大写
<span style="white-space:pre">	</span>Concat(Str,str…..)串联字符串。
<span style="white-space:pre">	</span>Instr(str,s) – 返回s在str中出面的位置,没有则返回0

group By
<span style="white-space:pre">	</span>查询所有人考试的总分
<span style="white-space:pre">	</span>Select sum(score),name from stud group by name;
<span style="white-space:pre">	</span>查询考试总分大于50的人:下面使用了别名和having关键字。
<span style="white-space:pre">	</span>Select sum(score) as c,name from stud group by name having c>50
//固定搭配
<span style="white-space:pre">	</span>SELECT * FROM  +  WHERE  + ORDER BY(要放在最后)
<span style="white-space:pre">	</span>GROUP BY + HAVING

视图

视图是保存在数据库中的选择查询,相当于从一个或多个数据表中派生出来的虚拟表。它兼有查询和表的双重功能。
查询功能:视图保存一个完整的SQL查询命令,相当于给一个查询起了一个名字。简化数据查询和数据处理操作。提高数据的安全性。
表的功能:视图可以和表一样使用,即操作表的所有命令都可以使用在视图中,但是要注意:视图本身不含有任何数据,每次使用相当于从数据库表中重新查询。
创建视图的示例:
Create view view_name as select * from stud where id>3;
视图的创建在表与表的关系 1:1中可能会用到。
会继续更新的。继续学习。。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值