Java课件 14-SQL入门学习资料_第1页
Java课件 14-SQL入门学习资料_第2页
Java课件 14-SQL入门学习资料_第3页
Java课件 14-SQL入门学习资料_第4页
Java课件 14-SQL入门学习资料_第5页
已阅读5页,还剩33页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQL入门数据库简介SQLServerOracleDB2MySQLMySQL数据库的安装和配置NavicatforMySQL使用MySQL简介所谓安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。数据库服务器、数据库和表的关系如图所示。数据库服务器、数据库和表的关系MySQLDBDB表表表Client数据在数据库中的存储方式id=1name=“lisi”age=23User对象idnameage1lisi232wang24User表id=2name=“wang”age=24行(row)列(column)表的一行称之为一条记录表中一条记录对应一个java对象的数据User对象创建数据库CREATEDATABASE[IFNOTEXISTS]db_name

[create_specification...]create_specification:

[DEFAULT]CHARACTERSETcharset_name

CHARACTERSET:指定数据库采用的字符集练习:创建一个名称为mydb1的数据库。创建一个使用utf8字符集的mydb2数据库。查看、删除数据库练习:查看当前数据库服务器中的所有数据库查看前面创建的mydb2数据库的定义信息删除前面创建的mydb1数据库显示数据库语句:SHOWDATABASES显示数据库创建语句:SHOWCREATEDATABASEdb_name

数据库删除语句:DROPDATABASE[IFEXISTS]db_name

创建表(基本语句)注意:创建表时,要根据需保存的数据创建相应的列,并根据数据的类型定义相应的列类型。例:user对象

idint namestring passwordstring birthdaydateCREATETABLEtable_name( field1datatype, field2datatype, field3datatype,)characterset字符集field:指定列名datatype:指定列类型MySQL常用数据类型分类数据类型说明数值类型BIT(M)TINYINT[UNSIGNED][ZEROFILL]BOOL,BOOLEANSMALLINT[UNSIGNED][ZEROFILL]INT[UNSIGNED][ZEROFILL]BIGINT[UNSIGNED][ZEROFILL]FLOAT[(M,D)][UNSIGNED][ZEROFILL]DOUBLE[(M,D)][UNSIGNED][ZEROFILL]位类型。M指定位数,默认值1,范围1-64带符号的范围是-128到127。无符号0到255。使用0或1表示真或假2的16次方2的32次方2的64次方M指定显示长度,d指定小数位数表示比float精度更大的小数文本、二进制类型CHAR(size)char(20)VARCHAR(size)varchar(20)BLOBLONGBLOBTEXT(clob)LONGTEXT(longclob)固定长度字符串可变长度字符串二进制数据大文本时间日期DATE/DATETIME/TimeStamp日期类型(YYYY-MM-DD)(YYYY-MM-DDHH:MM:SS),TimeStamp表示时间戳,它可用于自动记录insert、update操作的时间VARCHAR、BLOB和TEXT类是变长类型。每个类型的存储需求取决于列值的实际长度。创建表练习字段属性Id整形name字符型sex字符型或bit型brithday日期型entry_date日期型job字符型salary小数型resume大文本型创建一个员工表修改表使用ALTERTABLE语句追加,修改,或删除列的语法.ALTERTABLEtableADD

(columndatatype[DEFAULTexpr] [,columndatatype]...);ALTERTABLEtableMODIFY

(columndatatype[DEFAULTexpr] [,columndatatype]...);ALTERTABLEtableDROP

(column);修改表的名称:renametable

表名

to

新表名修改表的字符集:altertablestudentcharactersetutf8;练习在上面员工表的基本上增加一个image列。修改job列,使其长度为60。删除entry_date列。表名改为person。列名name修改为username修改表Insert语句(增加数据)Update语句(更新数据)Delete语句(删除数据)Select语句(查找数据)数据库CRUD语句Insert语句使用INSERT语句向表中插入数据。INSERTINTO table[(column[,column...])]VALUES (value[,value...]);插入的数据应与字段的数据类型相同。数据的大小应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。在values中列出的数据位置必须与被加入的列的排列位置相对应。字符和日期型数据应包含在单引号中。插入空值,不指定或insertintotablevalue(null)Insert语句练习练习:使用insert语句向表中插入三个员工的信息。字段名字段类型id整形name字符串型sex字符或整数类型birthday日期型salary浮点型entry_date日期型resume大文本型注意:字符和日期要包含在单引号中。Update语句使用update语句修改表中数据。UPDATE tbl_name

SETcol_name1=expr1[,col_name2=expr2...]

[WHEREwhere_definition]

UPDATE语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如没有WHERE子句,则更新所有的行。Update语句练习练习:在上面创建的employer表中修改表中的纪录。要求将所有员工薪水修改为5000元。将姓名为张三的员工薪水修改为3000元。将姓名为李四的员工薪水修改为4000元,job改为采购员。将王五的薪水在原有基础上增加1000元。 Delete语句使用delete语句删除表中数据。deletefromtbl_name

[WHEREwhere_definition]

如果不使用where子句,将删除表中所有数据。delete语句不能删除某一列的值(可使用update)使用delete语句仅删除记录,不删除表本身。如要删除表,使用droptable语句。同insert和update一样,从一个表中删除记录将引起其它表的参照完整性问题,在修改数据库数据时,头脑中应该始终不要忘记这个潜在的问题。删除表中名称为张三的记录。删除表中所有记录。Delete语句练习Select语句(1)SELECT[DISTINCT]*|{column1,column2,column3..}

FROM table;Select指定查询哪些列的数据。column指定列名。*号代表查询所有列。from指定查询哪张表。distinct可选,指显示结果时,是否剔除重复数据基本select语句Select语句(1)练习:查询表中所有员工的信息。查询表中所有员工的姓名和对应的工资。过滤表中重复姓名数据。Select语句(2)SELECT

*|{column1|expression,column2|expression,..}

FROM table;在select语句中可使用表达式对查询的列进行运算在select语句中可使用as语句SELECTcolumnas别名from表名;Select语句(2)练习在所有员工工资上加100元奖金。使用别名表示员工工资。Select语句(3)使用where子句,进行过滤查询。练习:查询姓名为张三的员工工资查询工资大于3000元的员工查询姓李的员工信息Select语句(4)比较运算符><<=>==<>大于、小于、大于(小于)等于、不等于BETWEEN

...AND...显示在某一区间的值IN(set)显示在in列表中的值,例:in(100,200)LIKE‘张pattern’模糊查询ISNULL判断是否为空逻辑运算符and多个条件同时成立or多个条件任一成立not不成立,例:wherenot(salary>100);在where子句中经常使用的运算符Like语句中,%代表零个或多个任意字符,_代表一个字符,例first_namelike‘_a%’;Select语句(4)查询工资在2000-5000之间的员工。查询工资为3000,8000的员工。Select语句(5)SELECT

column1,column2.column3..

FROM table; orderbycolumnasc|descOrderby指定排序的列,排序的列即可是表中的列名,也可以是select语句后指定的列名。Asc升序、Desc降序ORDERBY子句应位于SELECT语句的结尾。练习:对工资排序后输出。对姓李的员工工资排序输出使用orderby子句排序查询结果。合计函数-countSelectcount(*)|count(列名)fromtablename [WHEREwhere_definition]

练习:统计共有多少员工?统计工资大于3000的员工有多少个?Count(列名)返回某一列,行的总数合计函数-SUMSelectsum(列名){,sum(列名)…}fromtablename [WHEREwhere_definition]

练习:统计员工总工资?统计姓李的员工总工资?注意:sum仅对数值起作用,否则会报错。注意:对多列求和,“,”号不能少。Sum函数返回满足where条件的行的和合计函数-AVGSelectsum(列名){,sum(列名)…}fromtablename [WHEREwhere_definition]

练习:求员工平均工资?AVG函数返回满足where条件的一列的平均值合计函数-MAX/MINSelectmax(列名)

fromtablename [WHEREwhere_definition]

练习:求员工最高工资和最低工资(数值范围在统计中特别有用)Max/min函数返回满足where条件的一列的最大/最小值Select语句(6)SELECT

column1,column2.column3..FROM table; groupbycolumn练习:统计男女员工的个数使用groupby子句对列进行分组时间日期相关函数ADDTIME(date2,time_interval)将time_interval加到date2CURRENT_DATE(

)当前日期CURRENT_TIME(

)当前时间CURRENT_TIMESTAMP()当前时间戳DATE(datetime)返回datetime的日期部分DATE_ADD(date2,INTERVALd_valued_type)在date2中加上日期或时间DATE_SUB(date2,INTERVALd_valued_type)在date2上减去一个时间DATEDIFF(date1,date2)两个日期差NOW(

)当前时间YEAR|Month|DATE(datetime)年月日字符串相关函数CHARSET(str)返回字串字符集CONCAT(string2

[,...])连接字串INSTR(string,substring)返回substring在string中出现的位置,没有返回0UCASE(string2)转换成大写LCASE(string2)转换成小写LEFT(string2,length)从string2中的左边起取length个字符LENGTH(string)string长度REPLACE(str,search_str,replace_str)在str中用replace_str替换search_strSUBSTRING(str,position

[,length])从str的position开始,取length个字符LTRIM(string2)RTRIM(string2)trim去除前端空格或后端空格数学相关函数ABS(number2)绝对值BIN(decimal_number)十进制转二进制CEILING(number2)向上取整CONV(number2,from_base,to_base)进制转换FLOOR(number2)向下取整FORMAT(number,decimal_places)保留小数位数HEX(DecimalNumber)转十六进制LEAST(number,number2

[,..])求最小值MOD(numerator,denominator)求余RAND([seed])RAND([seed])定义表的约束定义主键约束primarykey:不允许为空,不允许重复altertabletablenamedropprimarykey;删除主键定义主键自动增长

auto

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论