数据库学习入门数据库基础入门数据库学习入门数据库基础入门-------------------数据库的作用:-------------------数据是数据库中存储的基本对象包括:文字、图形、图像、声音有组织的、可共享的数据集合------------------常用的DBMS------------------MYSQL(oracle、Sun)oracle(oracle)SQL-Server(Microsoft)DB2(IBM)-----------------------------------..如何学习数据库管理系统------------------------------------.程序员1、标准语言:SQL(结构化查询语言)SQL是用于访问数据库的最常用标准化语言,他是由ANSI/ISOSQL标准定义的SQL的分类DML:数据操作语言(用于检索或者修改数据)DDL:数据定义语言(用于定义数据的结构,比如创建、修改或者删除数据库的对象)DCL:数据控制语言(用于定义数据库用户的权限)DML:select:用于检索数据insert:用于增加数据到数据库update:用于从数据库中修改现存的数据delete:用于从数据库中删除数据DDL:createtable//创建表alter//修改表droptable//删除表createindex//创建索引dropindex//删除索引createview//创建视图dropview//删除视图DCL:grant//授权revoke//撤销授权set//设置2、不同数据库的独特管理方式.DBA(DatabaseAdministrator)1、标准语言:SQL(结构化查询语言)2、不同数据库的独特管理方式3、数据库的调优4、精通数据库的备份、回复机制-----------------------------MYSQL的安装与配置----------------------------安装:选择普通安装类型.配置1、选择配置类型:DetailedConfiguration2、选择服务器类型:DeveloperMachine3、选择数据库的是使用情况:--多功能数据库(MultifunctionalDatabase)--只是事务处理数据库(TransactionalDatabaseOnly)--只是非事务处理数据库(Non-TransactionalDatabaseOnly)4、InnoDB表空间文件存储的盘符,默认在c:\5、数据库并发连接数配置:Decisionsupport6、MYSQL服务器端口:默认:33067、EnableStrictMode:是否允许严格样式检查:取消8、选择字符编码:手工选择:gb2312,windows下中文支持9、服务器默认安装到windows系统服务中,默认服务自启动,选择自动配置环境变量10、填写数据库管理系统的管理员密码--在mySQL中数据库管理员的用户名为:root11、是否允许使用root用户远程登录数据库12、测试配置是否正确c:\c:\mysql\bin\mysqlshow------------------------MYSQL的登录------------------------.开始--运行--cmd.输入:mysql-uroot-p,然后输入密码.或者:mysql-uroot-p密码.退出quit或者\q--不必全在一个行内给出一个命令,较长命令可以输入到多个行中。mysql通过寻找终止分号而不是输入行的结束来决定语句在哪儿结束-等待多行命令的下一行'等待下一行,等待以单引号开始的字符串结束如果你决定不想执行正在输入过程中的一个命令,输入\c取消它能够以大小写输入关键词,结果是等价的--------------------基本的SQL语句--------------------创建数据库---createdatabaseschool;查看有哪些数据库--showdatabases;删除数据库---dropdatabaseschool;--------------------------向数据库中存储数据--------------------------1、首先进入数据库usedbname;use类似quit,不需要一个分号,写也无碍use必须在一个单行上给出2、查看数据库中的表showtables;3、在数据库中创建表createtablestudent(namevarchar(20),ageint,sexchar(2));4、向表中插入数据---insertintodbnamevalues(‘张三’,18,‘男’);5、查看表中所有的数据--select*fromstudent;只查看姓名和年龄---selectname,agefromstudent;--------------------常用的数据类型--------------------char(M)固定长度字符用来表示固定长度字符串,字符串的长度是1-255VARCHAR(M)可变长度字符具有灵活性的字符数据类型,范围:1-255处理char类型的数据比varchar类型的数据要快,有时会快50%(char类型存储的数据的长度是声明变量时的固定长度,而不管数据的实际长度,varchar存储的是按数据的实际长度,从而减小了数据文件的大小)int整数有符合的范围:-2147483648到2147483647,无符号范围:0到4294967295--------------------------其他常用的数据类型--------------------------DATE---日期类型,显示‘YYYY-MM-DD’DATETIME--日期和时间的组合,显示‘YYYY-MM-DDHH:MM:SS'TEXT/BLOB文本和大对象TEXT可以保存字符串的长度在255-65535字节内。BLOB是一个能保存二进制数据的大对象,区别是TEXT不区分大小写,而BLOB区分大小写。SQL语句的导入1、编写SQL脚本(.sql)2、导入mysql-uusername-p***.sql&练习:&老师表:teacher&姓名,性别,年龄,课程导出sql脚本---mysqldumpstu-uroot-pabc.sql查看表的结构------desctablename修改表中的数据---updatetablenamesetcolname=valuewhere条件删除数据-----deletefromteacherwhereage=?删除表中所有数据---deletefromteacher;删除表---droptabletablename根据条件进行过滤查找---select*fromtablenamewhere条件查找出版社为“清华出版社”的所有书籍---select*frombookswherepub=‘清华出版社’;查找出库存大于50的所有书籍---select*frombookswherestore50;查找出“西游记”的库存量---selecttitle,storefrombookswheretitle=‘西游记’;SQL运算符大于小于=大于等于=小于等于!=,不等于查看数据库的信息----\s-------------------mysql常用函数-------------------1、查看数据库版本---selectversin();计算机的时间是存在BIOS()2、查看当前数据库的日期----selectcurrent_date();3、查看当前数据库时间----selectnow();4、查看当前连接数据库的用户---selectuser();localhost:代表是本机createtableuser(idint,namevarchar(20),birdate,deadatetime);insertintouservalues(1,'zhangsan',now(),now());or和and查询or(满足一个条件)and(都需要满足)查找学生EQ为80分或90分的学生select*fromstuwhereEQ=80orEQ=90;查找学生EQ为90分并且性别为女的学生select*fromstuwhereEQ=90andsex='女';in(x,x)返回条件中的记录与or作用相似select*fromtablenamewhere条件in(,);between‘’and‘’返回两者之间的记录查询年龄在20-30之间的所有学生select*fromstuwhereagebetween20and30;like与通配符(%)一起使用,模糊查询查找出姓张的学生select*fromstuwherenamelike‘张%’;查询出使用163邮箱的所有学生select*fromstuwhereemaillike‘3.com’;查询出邮箱里面含有a的所有学生select*fromstuwhereemaillike‘%a%’;orderby实现排序(从小到大)--asc将学生的年龄从高到低排列select*fromstuorderbyagedesc;(降序)将学生的年龄从低到高排列select*fromstuorderbyageasc;(升序)数据默认为升序(从低到高)select*fromstuorderbyage;as为查询的列起别名1、查询所有学生只列出姓名,年龄,性别selectnameas'姓名',ageas'年龄',sexas'性别'fromstu;groupby对于查询出的数据结果进行分类(分组)2、将学生按性别进行分类select*fromstugroupbysex;将学生按年龄进行分类select*fromstugroupbyage;3、having子查询:对于where查询出的结果再次进行查询查找出年龄大于20岁学生,并且在其中找出姓名等于xxx的学生select*fromstuwhereage20havingname='xxx'或select*fromstuwhereage20andname='xxx'4、distinct过滤查询的重复型记录,只显示唯一的记录将学生性别过滤selectdistinct(sex)fromstu;count查看表中有几条数据selectcount(*)fromstu;selectcount(distinct(sex))fromstu;limit限制查询结果的输出数量同时也可以实现数据的分页查询EQ前三名的学生select*fromstuorderbyEQdesclimit3;实现查询记录的分页select*fromstulimit0,3;select*fromstulimit3,3;约束----定义了表级的强制规则、数据的完整性非空约束(notnull)createtabletest(idintnotnull);insertintotestvalues();innodb会报错,myISAM会整形默认以0填充唯一约束(UNIQUE)不允许列中的数据重复createtabletest(idint,unique(id));insertintotestvalues(1);默认约束(default)createtabletest(idintnotnulldefault'111111');insertintotestvalues();主键约束(primarykey)是一个字段或一组字段(组合键),用于唯一标识表中的记录,它可以确保每个记录是唯一的。createtabletest(idint,primarykey(id));insertintotestvaluse(1);id主键自增,减createtabletest(idint,namevarchar(20),primarykey(id));insertintotestvalues(1,'张安');auto_increment的特点-------自增