您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > MYSQL实用技术-创建数据库
MYSQL实用技术建立数据库操作:语法:createdatabase数据库名叙述:创建一个具有指定名称的数据库。如果要创建的数据库已经存在,或者没有创建它的适当权限,则此语句失败。例:建立一个student库。mysqlcreatedatabasestudent;创建数据库还原一个数据库:mysql-hlocalhost-uroot-p123456数据库名数据库所在路径(c:\数据库名.sql)备份一个数据库:mysqldump-hlocalhost-uroot-p123456数据库名数据库所在路径(d:\数据库.sql)mysql数据库备份及恢复命令mysqldump,source的用法备份MySQL数据库的命令mysqldump-hhostname-uusername-ppassworddatabasenamebackupfile.sql备份MySQL数据库为带删除表的格式备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。mysqldump-–add-drop-table-uusername-ppassworddatabasenamebackupfile.sql直接将MySQL数据库压缩备份mysqldump-hhostname-uusername-ppassworddatabasename|gzipbackupfile.sql.gz备份MySQL数据库某个(些)表mysqldump-hhostname-uusername-ppassworddatabasenamespecific_table1specific_table2backupfile.sql同时备份多个MySQL数据库mysqldump-hhostname-uusername-ppassword–databasesdatabasename1databasename2databasename3multibackupfile.sql仅仅备份数据库结构mysqldump–no-data–databasesdatabasename1databasename2databasename3structurebackupfile.sql备份服务器上所有数据库mysqldump–all-databasesallbackupfile.sql还原MySQL数据库的命令mysql-hhostname-uusername-ppassworddatabasenamebackupfile.sql还原压缩的MySQL数据库gunzipbackupfile.sql.gz|mysql-uusername-ppassworddatabasename将数据库转移到新服务器mysqldump-uusername-ppassworddatabasename|mysql–host=*.*.*.*-Cdatabasename1.导出整个数据库mysqldump-u用户名-p数据库名导出的文件名mysqldump-uroot-pdatanamedataname.sql这个时候会提示要你输入root用户名的密码,输入密码后dataname数据库就成功备份在mysql/bin/目录中.2.导出一个表mysqldump-u用户名-p数据库名表名导出的文件名mysqldump-uroot-pdatanameusersdataname_users.sql3.导出一个数据库结构mysqldump-uwcnc-p-d–add-drop-tablesmgp_apps_wcncd:\wcnc_db.sql-d没有数据–add-drop-table在每个create语句之前增加一个droptable几个常用用例:4.导入数据库常用source命令进入mysql数据库控制台,如mysql-uroot-pmysqluse数据库然后使用source命令,后面参数为脚本文件(如这里用到的.sql)mysqlsourced:\wcnc_db.sql建立表操作:语法:createtable表名(列名1列类型[列的完整性约束],列名2列类型[列的完整性约束],......);叙述:在当前数据库下新创建一个数据表。列类型:表示该列的数据类型。例:建立一个表school,其由两列组成,第一列属性为非空,并做为主键,并自增createtableschool(school_idint(10)notnullauto_incrementprimarykey,school_namevarchar(20));创建表常见完整性约束:PRIMARYKEY主码约束(主键)UNIQUE唯一性约束NOTNULL非空值约束AUTO_INCREMENT用于整数列默认自增1UNSIGNED无符号整数DEFAULTdefault_value默认值约束DEFAULTcur_timestamp创建新记录时默认保存当前时间(仅适用timestamp数据列)ONUPDATEcur_timestamp修改记录时默认保存当前时间(仅适用timestamp数据列)CHARACTERSETname指定字符集(仅适用字符串)在创建一个新的MySQL数据表时,可以为它设置一个类型,其中最重要的3种类型是MyISAM:成熟、稳定和易于管理InnoDB:加入事物、数据行级锁定机制、外键约束条件、崩溃恢复等新功能HEAP:只存在于内存中,可做临时表createtabletmp(…)ENGINE=MyISAM数据表类型数据表之间的关联/引用关系是依靠具体的主键(primarykey)和外键(foreignkey)建立起来的。主键:帮助MySQL以最快的速度把一条特点的数据记录的位置确定下来。主键必须是唯一的主键应该是紧凑的,因此整数类型比较适合外键:引用另外一个数据表的某条记录。外键列类型尽可能与主键列类型保持一致外键列应该加上NOTNULL主键与外键主键createtablestudent(sidintnotnullauto_increment,namevarchar(20)notnull,primarykey(sid));外键(自动检查外键是否匹配,仅适用InnoDB)createtablescore(cidintnotnullauto_incrementprimarykey,scoreint,sidint,foreignkey(sid)referencesstudent(sid));主表和从表1、当主表中没有对应的记录时,不能将记录添加到子表——成绩表中不能出现在学员信息表中不存在的学号;2、不能更改主表中的值而导致子表中的记录孤立——把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变;3、子表存在与主表对应的记录,不能从主表中删除该行——不能把有成绩的学员删除了4、删除主表前,先删子表——先删学员成绩表、后删除学员信息表思考电话号码一般使用什么数据类型存储?性别一般使用什么数据类型存储?年龄信息一般使用什么数据类型存储?照片信息一般使用什么数据类型存储?薪水一般使用什么数据类型存储?思考学员姓名允许为空吗?家庭地址允许为空吗?电子邮件信息允许为空吗?考试成绩允许为空吗?思考在主键列输入的数值,允许为空吗?不允许一个表可以有多个主键吗?不可以在一个学校数据库中,如果一个学校内允许重名的学员,但是一个班级内不允许学员重名,可以组合班级和姓名两个字段一起来作为主键吗?选择主键的原则最少性尽量选择单个键作为主键稳定性尽量选择数值更新少的列作为主键思考标识列允许为字符数据类型吗?INT如果标识列A的初始值为1,则输入三行数据以后,再删除两行,下次再输入数据行的时候,标识值从多少开始?四例:建立一个学生信息表(student)定义列sno学号,类型为5位定长字符串,非空,主键定义列sname姓名,类型为8位定长字符串,非空定义列ssex性别,取值1或0定义列sage年龄,类型为短整型定义列sdept系名,数据类型为20位变长字符串例:建立一个课程信息表(course)定义列courseid课程号,类型为整型,非空,自动增长,主键定义列cname课程名,类型为16位变长字符串,非空例:建立一个学生考试成绩信息表(sc)定义列grade成绩,类型为整型要求把表字段补充完整,可以通过学号查看学生相关课程的成绩语法:describe表名;desc表名;叙述:用于显示表的创建结构。显示表结构操作删除表操作语法:droptable[ifexists]tab_name[,tab_name]...叙述:从数据库中删除给定的表。如果给出ifexists子句,则删除不存在的表不会出错。删除数据库操作语法:dropdatabase[ifexists]db_name叙述:删除给定的数据库。在删除一个数据库后,它就永远没有了,因此要特别小心。如果给出ifexists子句,则删除不存在的数据库不会出错。删除数据库或表操作语法:altertable表名action;说明:action可以是如下语句:add列名建表语句[first|after列名]可以为表添加一列,如果没指定first或者after,则在列尾添加一列,否则在指定列添加新列addprimarykey(列名)为表添加一个主键,如果主键已经存在,则出现错误addforeignkey(列名)references表名(列名)为表添加一个外键alter列名setdefault默认值可以更改指定列默认值更改表结构操作change旧列名新列名建表语句[first|after列名]可以更改列类型和列名称,如果原列的名字和新列的名字相同modify列名建表语句[first|after列名]和change的作用相同drop列名//可以删除一列dropprimarykey//可以删除主键engine类型名//可以改变表类型renameas新表名//可以将表名更改举例1:向people表中添加字段address2,类型为varchar,最大长度为100altertablepeopleaddaddress2varchar(100);举例2:将people表中的name列默认值改为100:altertablepeoplealternamesetdefault100;举例3:向student表增加“入学时间”列,其数据类型为日期型。altertablestudentaddscomedate;注:无论基本表中原来是否已有数据,新增加的列一律为空值。举例4:将年龄的数据类型改为半字长整数。altertablestudentmodifysagesmallint;注:修改原有的列定义有可能会破坏已有数据
本文标题:MYSQL实用技术-创建数据库
链接地址:https://www.777doc.com/doc-7534729 .html