数据库总结
- 格式:doc
- 大小:39.00 KB
- 文档页数:9
数据库总结:共三天的课程数据库的概念:数据库是一组有序的数据的集合;数据库的作用:为了有效的管理数据;数据类型:一字符串相关的类型:一般用于人名、大于2147483647(10位数)的数字、地址等字符信息使用格式:字段名char (存放字符的长度) 或者字段名varchar(存放字符的长度)Char:代表的是定长的字符串类型,定义了多长,就分配多长的存储空间,只要不超过定义的长度,分配给char的空间长度就不会改变,余下的部分用空格代替;Varchar:代表的是可变长度的字符串类型,定义的长度可以理解为是虚拟的空间,只要字符串的长度不超过定义的长度,那么varchar 的分配空间长度就是字符串实际的长度,余下的部分自动消失;二数字相关的类型:一般用于工资、人数统计等方面;使用格式:字段名int/float/double 【此处不用定义字段的长度】int:取值的范围-2147483648~2147483647,后面可以设置主键及自增长;float/double:用于带有小数的数据定义decimal:多用于金钱的数据三时间相关的数据类型:一般用于时间的统计,例如登录时间、修改时间、退出时间等;使用格式:字段名date/time/datetime/timestamp 【此处不用定义字段的长度】,插入表的时候格式与字符串的插入格式一样,都是用单引号插入date:日期类型格式:yyyy-MM-ddtime:时间类型格式:hh:mm:ssDatetime:日期时间格式:yyyy-MM-dd hh:mm:ssTimestamp:时间戳格式:yyyy-MM-dd hh:mm:ss数据库的操作:一查看所有数据库:select databases;二查看所有表:select tables;三创建数据库:create database 数据库名称;use 数据库名称;四创建表:create table 表名(字段1 类型(长度) [约束],字段2 类型(长度) [约束],字段n 类型(长度) [约束])注:字段n的结尾处不需要用逗号分隔五删除当前表/数据库:drop table 表名/ 数据库名;六向表中插入数据:insert into 表名(字段1,字段2,字段n) values(值1,值2,值n),(值1,值2,值n),(值1,值2,值n),(值1,值2,值n)...注:此处的插入数据可以用逗号隔开,想要插入几条数据就插入几个值。
七查看当前表的值:select * from 表名注:*是通配符,代表全部的意思,此处*还可以用表中的字段名代替,那么查看就是相应的字段名下的数据。
约束:一主键约束:primary key 代表的是唯一、不重复,非空的约束使用格式:字段名类型(长度) primary key自增长:auto_increment 必须与主键约束一同使用,字段的类型是整型,插入数据的时候可以不用向设置自增长的字段添加数据,起始的默认数字是:1二唯一约束:unique 不可以重复,唯一使用格式:字段名类型(长度) unique注:空格是不可以作为字符串使用的,空格相当于null,如果向设置unique的字段内插入数据是存在【‘空格’、null、(‘’)】当中两个或两个以上的时候就会报错【’null’是字符串,不是空】三非空约束:not null 插入数据时必须要为设置not null的字段插入数据,这个字段不能为空使用格式:字段名类型(长度) not null注:空格是不可以作为字符串使用的,空格相当于null,如果向设置not null的字段内插入数据是存在【‘空格’、null、(‘’)】当中一个或一个以上的时候就会报错四默认约束:default 为字段设置默认值,当不为设置默认约束的字段插入数据是,系统自动将默认值赋予这个字段使用格式:字段名类型(长度) default 值五检查约束:check (检查的内容)使用格式:字段名类型(长度) check(检查的内容)注:在SQL语句中没有实际的含义,但是需要会用六外键约束:foreign key 必须是另一个表的主键(唯一的),设置了外键的字段,受到关联表中相应主键的字段的约束,当要为外键约束插入数据的时候,必须先为被关联的表插入相应主键的数据;使用格式:创建表时候就设置外键约束字段名类型(长度) ,Foreign key (字段名) references 表名(对应主键的字段名)表已经创建完,插入外键约束Alter table 表名add constraint fk_f foreign key (要设置外键的字段名) references 被关联的表名(被关联的字段名);表的结构:查看表结构:desc/describe 表名;修改表名:alter table 表名rename 新表名添加新字段:alter table 表名add 字段名类型(长度)修改字段:alter table 表名change 旧字段新字段新字段类型(长度)删除字段:alter table 表名drop 字段名记录的操作:一插入记录:insert into 表名(字段名1,字段名n)values(值1,值n)二修改记录:update 表名set 字段名=值where 条件注:这里如果不加where条件,那么这个表的这个字段名下的数据全部赋值成为“值”三删除记录:delete from表名where 条件注:此处删除的是表中的符合where条件的整条记录注意:使用delete和update的时候要千万注意,必须要写where 条件语句,要不然就会将当前表中的所有数据改变,在想改回来的话会非常非常费劲!!!!!四查询记录:select 字段名1,字段名n from 表名where 查询条件1 查询去掉重复的值:关键字distinct格式:select distinct 字段名1,字段名n from 表名2 命别名/赋值表:关键字as命别名:select 字段名as ‘自定义名’from 表名赋值表:create table 新表名as select * from 旧表名3 查询条件语句的范围:in(等值判断)/not inselect 字段名1,字段名n from 表名where 字段名in/not in (值1,值n)4 模糊查询:like 匹配标识符:’_’代表一个字符、%代表多个字符Select 字段名from 表名where 字段名like ‘_sth%’注:like后面的判断值如果是数字的话要加单引号,例如想要查询的条件是12345,可以这样写:’%3%’,单引号必须加5 区间查询:limit m,n 查询从第m个记录开始,一共n条记录,这里的m指的是类似Java数组里的下标,计数从0开始Limit m 查询从头开始的一共m条记录Select */字段名from 表名limit m,n6 查询值是否存在某段区间内:between 最大值and 最小值(int 型的最大值、最小值)Select 字段名1,字段名n from 表名where 字段名between 最大值and 最小值:注意这里面的条件含有等于最大值和等于最小值字段名between 最大值and 最小值= 字段名>=最小值and 字段名<=最大值逻辑运算符在此处可通用:< <= > >= = !=集合函数:使用方法与Java中的方法的使用类似,注意的是函数名后面紧跟着(),中间不能有空格一符合条件的记录的个数:countilSelect count(字段名) from 表名where 查询条件二求某个字段的值的总和:sumSelect sum(字段名) from 表名where 查询条件三求某个字段的值的平均值:avgSelect avg(字段名) from 表名where 查询条件四求某个字段的值的最大值:maxSelect max(字段名) from 表名where 查询条件五求某个字段的值的最大值:minSelect min(字段名) from 表名where 查询条件多表查询:笛卡尔积:select (字段1,字段n) from 表1,表n自己想要的查询(找到所有被查询的表的相同的字段):Select (a.字段1,a.字段n,b.字段1,b.字段n) from 表名as a,表名as b where a.字段名=b.字段名;联合查询:左连接:select 字段名/* from 左表名left join 右表名on左表名.字段名=右表名.字段名查询结果:左表全部显示,右表与左表相同的字段名的部分显示右连接:select 字段名/* from 左表名right join 右表名on 左表名.字段名=右表名.字段名查询结果:右表全部显示,左表与右表相同的字段名的部分显示内连接:select 字段名/* from 左表名inner join 右表名on 左表名.字段名=右表名.字段名查询结果:只有左表与右表相同的部分才显示全连接:select 字段名/* from 左表名full join 右表名查询结果:’*’的结果是笛卡尔积‘字段名’的结果是这个字段名下的笛卡尔积函数:函数名与小括号之间不能有空格,字符串必须用单引号圈起来一求字符串长度:lengthSelect length(字符串)二字符串的截取:substring(字符串,m)/(字符串,m,n) Select substring(字符串,m)/(字符串,m,n)三小写转大写:upperSelect upper(字符串)四大写转小写:lowerSelect lower(字符串)五加密:MD5Select MD5(字符串)六显示现在的时间:nowSelect now()迷糊中:group by order by 子查询。