MySQL基本操作

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一章表CreateDatabase创建数据库句法:CREATEDATABASEdb_name功能:CREATEDATABASE用给定的名字创建一个数据库。如果数据库已经存在,发生一个错误。DROPDATABASE删除数据库句法:DROPDATABASE[IFEXISTS]db_name功能:DROPDATABASE删除数据库中的所有表和数据库。要小心地使用这个命令!用USE选用数据库句法:USEdb_nameUSEdb_name语句告诉MySQL使用db_name数据库作为随后的查询的缺省数据库。数据库保持到会话结束,或发出另外一个USE语句:mysqlUSEdb1;mysqlSELECTcount(*)FROMmytable;selectsfromdb1.mytable;mysqlUSEdb2;mysqlSELECTcount(*)FROMmytable;selectsfromdb2.mytable;第二章用SHOW语句显示数据表的信息SHOWTABLES[FROMdb_name][LIKEwild]获取表结构命令:desc表名,或者showcolumnsfrom表名mysqldescMyClass;mysqlshowcolumnsfromMyClass;第三章改有时可能需要改变一下现有表的结构,那么AlterTable语句将是你的合适选择。增加列altertabletbl_nameaddcol_nametype例如,给表增加一列weightmysqlaltertablepetaddweightint;删除列altertabletbl_namedropcol_name例如,删除列weight:mysqlaltertablepetdropweight;改变列altertabletbl_namemodifycol_nametype例如,改变weight的类型:mysqlaltertablepetmodifyweightsamllint;另一种方法是:altertabletbl_namechangeold_col_namecol_nametype例如:mysqlaltertablepetchangeweightweightsamllint;给列更名mysqlaltertablepetchangeweightwei;给表更名altertabletbl_namerenamenew_tbl例如,把pet表更名为animalmysqlaltertablepetrenameanimal;第四章约束主键约束APRIMARYKEY是一个唯一KEY,它有额外的限制,即所有的关键列必须被定义为NOTNULL。在MySQL中,键被命名为PRIMARY.一张表只能有一个PRIMARYKEY。外键约束FOREIGNKEYREFERENCES检查约束CHECK唯一约束UNIQUE缺省约束DEFAULTcreatetableEmployee(idintauto_increment,/*创建属性auto_increment为自增长模式,从1开始,增量为1*/employee_numbervarchar(20)notnull,/*定义员工编号字段employee_number,notnull为非空约束*/employee_namevarchar(30)notnull,/*定义员工名子字段employee_name,notnull为非空约束*/employee_cardvarchar(18)notnull,/*定义员工名子字段employee_card,notnull为非空约束*/employee_levelvarchar(18)notnull,/*定义员工级别字段employee_level,notnull为非空约束*/employee_base_sarlyfloatdefault0,/*定义员工基本工资字段employee_base_sarly*/employee_jx_sarlyfloat,default0/*定义员工计绩工资字段employee_jx_sarly,*/employee_bonusfloat,default0/*定义员工奖金字段employee_bonus,*/employee_dpartment_idintnotnull,/*定义员工所属部门字段employee_dpartment_id,notnull为非空约束*//*定义Employee表的主键约束为id*/CONSTRAINTpk_employee_idprimarykey(id),/*定义Employee表的外键约束为employee_dpartment_id*/FOREIGNKEY(employee_dpartment_id)REFERENCESDpartment(id),/*定义Employee表的员工身份证证件号唯一*/CONSTRAINTuk_employee_cardunique(employee_card),/*定义Employee表的员工身份证证件号CHECK约束*/CONSTRAINTch_employee_cardcheck(employee_cardlike'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9,x,X]'),);createtableDpartment(/*创建属性ID,auto_increment为自增长模式,从1开始,增量为1*/idintauto_increment,/*定义部门名称字段dpartment_name,notnull为非空约束*/dpartment_namevarchar(50)notnull,/*定义部门信息字段,null为属性可以为空*/dpartment_informationvarchar(200)null,/*定义约束主键用CONSTRAINT+约束名(可以自己起名子)+primarykey(主键属性名称(如果有多个可以用逗号隔开))*/CONSTRAINTpk_dpartemt_idprimarykey(id),);第五章操作(查询)插入数据命令:insertinto表名[(字段名1[,..字段名n])]values(值1)[,(值n)]例如,往表MyClass中插入二条记录,这二条记录表示:编号为1的名为Tom的成绩为96.45,编号为2的名为Joan的成绩为82.99,编号为3的名为Wang的成绩为96.5.insertintoMyClassvalues(1,'Tom',96.45),(2,'Joan',82.99),(2,'Wang',96.59);查询表中的数据命令:select字段1,字段2,...from表名where表达式例如:查看表MyClass中所有数据mysqlselect*fromMyClass;查询前几行数据例如:查看表MyClass中前2行数据select*fromMyClassorderbyidlimit0,2;删除表中数据命令:deletefrom表名where表达式例如:删除表MyClass中编号为1的记录deletefromMyClasswhereid=1;修改表中数据:update表名set字段=新值,…where条件updateMyClasssetname='Mary'whereid=1;SELECTselection_list选择哪些列FROMtable_list从何处选择行WHEREprimary_constraint行必须满足什么条件GROUPBYgrouping_columns怎样对结果分组HAVINGsecondary_constraint行必须满足的第二条件ORDERBYsorting_columns怎样对结果排序LIMITcount结果限定查询排序使用ORDERBY子句对查询返回的结果按一列或多列排序。ORDERBY子句的语法格式为:ORDERBYcolumn_name[ASC|DESC][,…]其中ASC表示升序,为默认值,DESC为降序。ORDERBY不能按text、text和image数据类型进行排序。另外,可以根据表达式进行排序。例如,这里是动物生日,按日期排序:mysqlSELECTname,birthFROMpetORDERBYbirth;查询分组与行计数GROUPBY从句根据所给的列名返回分组的查询结果,可用于查询具有相同值的列。其语法为:GROUPBYcol_name,….你可以为多个列分组。mysqlSELECT*FROMpetGROUPBYspecies;+----------+--------+---------+------+------------+-------+|name|owner|species|sex|birth|death|+----------+--------+---------+------+------------+-------+|Chirpy|Gwen|bird|f|1998-09-11|NULL||Fluffy|Harold|cat|f|1993-02-04|NULL||Buffy|Harold|dog|f|1989-05-13|NULL||Puffball|Diane|hamster|f|1999-03-30|NULL||Slim|Benny|snake|m|1996-04-29|NULL|+----------+--------+---------+------+------------+-------+Having子句Having子句的一般应用场景:Groupby分组后对某列的聚合函数进行条件过滤selectbookcategory,sum(bookprice)frombookshopgroupbybookcategoryhavingcount(bookprice)100第六章数据库中的函数集合函数行列计数count(表达式)计算查询语句返回的记录行数直接计算函数COUNT(*)的值,例如,计算pet表中猫的只数:mysqlSELECTcount(*)FROMpetWHEREspecies=‘cat‘;统计字段值的数目例如,计算pet表中species列的数目:mysqlSELECTcount(species)FROMpet;计算字段的平均值avg(表达式)SELECTAVG(vote)FROMopinionAVG()函数和GROUPBY子句:mysqlSELECTspecies,AVG(CURDATE()-birth)FROMpetGROUPBYspecies;计算字段值的极值求字段的极值,涉及两个函数MAX()和MIN()mysqlSELECTMIN(birth)FROMpet;返回当前日期和时间CURDATE()返回当前日期以‘YYYY-MM-DD’或YYYYMMDD格式返回今天日期值,取决于函数是在一个字符串还是数字上下文被使用。mysqlselectCURDATE();CURTIME()返回当前时间以‘HH:MM:SS’或HHMMSS格式返回当前时间值,取决于函数是在一个字符串还是在数字的上下文被使用。mysqlselectCURTIME();NOW()返回当前时期和时间NOW()以YYYY-MM-DDHH:MM:SS的格式或者YYYYMMDDHHMMSS的格式返回日期和时间值,取决于上下文。mysqlselectnow();mysqlSELECTname,CURDATE()-birthFROMpet;比较日期和时间已知两个日期,比较它们的前后,可以直接求出它们的差和零值比较,也可以利用已知的时间函数:TO_DAYS(date)给出一个日期date,返回一个天数(从0年的天数),date可以是一个数字,也可以是一个串值,当然更可以是包含日期的时间类型。mysqlselectTO_D

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功