1.创建数据库
SQL语言创建:create database 数据库名称(最好用英文)
删除数据库的SQL语言:drop database 数据库名称
2.数据库中表中的基本数据类型
int:整型
char(10):表示字符串,定长字符串,如果n的值是10则无论实际存储多少个数据都占10个存储空间
varchar(10):表示字符串,可变长字符串,如果n的值是10,则该字符串最多能放10个字符,但如果只放了2个字符,则该字符串实际占2个存储空间,多余的8个字符空间自动释放
[Java中的char只能存放一个字符,但数据库中的char其实是字符串,可以存放一个字符也可以存放多个字符]
bit:表示boolean值,它的值为0和1
float(n,m):表示小数(n表示总长度,m表示小数位),double,real, numeric, decimal都表示小数
text:大文本类型(字符串)
time:表示时间(时:分:秒)
date:表示日期(年、月、日)
datetime:表示日期时间(年月日时分秒)
timestamp:时间戳类型(年月日时分秒毫秒)
3.数据库的使用
SQL语句在不同的数据库中基本是通用的。
SQL语句(SQL代码)主要用于对数据库表中的数据进行操作(增、删、修、查询)
(1)增加语句(向表中添加一条或多条记录)
向表中插入一条数据:insert into 表名称 values(….)
向表中插入多条数据:insert into 表名称 values(….),(….),(….),...
注:不插入的列必须定义为允许为空或有默认值的列
(2)修改语句
修改表中原有的数据,修改某一行或某几行的某些列数据
Update 表名称 set 要修改的列的列名=新值
(3)删除语句
从表中删除一行数据
Delete from 表名称 where 条件
(4)查询语句
根据查询的SQL语句,从原始表获取到需要的数据并形成一个虚表
我们查询到的结果都是虚表,虚表的调整及改变不影响原始表,还可以在虚表的基础继续进行查询操作,
查询出来的虚表是在每次使用时根据SQL语句从原始表中查询形成的,它不会像原始表一样存储在数据库中
查询不对原始表中的数据进行任何操作;与增、删、改不同,增删改会操作表中的数据
1>基本语法
Select 待查询的列(select子句)
From 表名
Where 条件(where子句)<where的条件最终是一个boolean>
Order by 排序
select子句控制查询的列,where子句控制查询的行,from子句指定从那个表(单个表,也可以是多个表)中获取数据
2>查询所有行所有列数据(*表示所有列)
Select * from 表名称
3>查询所有行的部分列数据
select 表内的属性1,表内的属性2,表内的属性3 from 表名称;
4>使用别名显示列数据 别名指外号
select 表内的属性1 as \'外号1\',表内的属性2 as \'外号2\',表内的属性3 as \'外号3\' from
表名称; 例:stu_name as \'姓名\'
5>查询部分行的数据(条件查询<where>)
6>排序查询(order by asc升序|desc降序>)
SQL会先按照第一排序规则进行排序,如果第一排序规则进行排序后出现相同的数据则按照第二排序规则对相同的数据再次进行排序,如果不存在相同的数据则第二排序规则不起作用
7>聚合查询
所有数据库中都提供了聚合函数,用法一致
聚合查询是使用数据库提供的几个聚合函数进行查询
使用位置:1.select子句,2.having子句
a) 统计查询(count(列名|*))
在使用count函数统计行数时,指定的列的值为NULL则不参与统计
b) 求和查询(sum(列名))
该函数查询是针对数字列进行求和
c) 求平均数查询(avg(列名))
该函数针对数字列进行求平均数
d) 求最大值和最小值查询(max(列名)|min(列名))
8>last_insert_id()
获得最后一次添加的主键,该函数放在insert语句后使用
该函数在不同的数据库中是不一样的
9>分组查询(group by)
是指将具有相同数据的列可以分为一组;
Having,筛选,它是能跟分组一起使用,先分组在筛选
10>分页查询(limit 起始行号,每页查询的行数)
不同的数据库实现分页的语句是不同的
Sqlserver:top
Oracle:rownumber
Mysql:limit
Sqlite:limit
Mysql中的起始行号为0
Select stu_no,stu_name,stu_age,stu_sex
From 表名称 limit 0,10;//0表示查询的起始行,10表示每次查询的行数
11>模糊查询
在不知道确切数据时我们就要使用模糊查询
通配符:%表示0个或多个任意字符
字符串模糊搜索查询LIKE ‘%刘%‘ :表示查询名字里带刘的
LIKE \'_我_\' :表示查询第二个字为我的三个字的组合