SQL语句基础数据类型:数值型精确数值int整型,表示整数的decimal定点数,如1.11近似数值float浮点型double双精度浮点型real字符型定长类型:CHAR(#)、BINARY(区分大小写)变长类型:VARCHAR(#)、VARBINARY(区分大小写)大字符text,blobENUM,SET:mysql内置的,枚举类型和集合日期时间型date,time,datetime,timestamp定义数据类型的作用:1、存入的值类型;2、占据的存储空间;3、定长还变长;4、如何比较及排序;5、是否能够索引;sql语句一般用大写,没有规定,最后结尾一定要有分号;。1.显示数据库结构(1)查看数据库中的列表信息Showdatabases语句:用于查看mysql服务器中包含的数据库列表。初始化后的数据库默认建立三个数据库:test,mysql和information_schema。查看mysql服务器包含有哪些数据库:mysqlshowdatabases;+--------------------+|Database|+--------------------+|information_schema||mysql||test|+--------------------+3rowsinset(0.02sec)mysql(2)查看数据库中的数据表信息Showtables语句:用于显示当前数据库中包含的数据表。在显示数据表之前,需要先使用“USE”语句切换到所使用的库。查看mysql数据库包含哪些表:mysqlusemysql;(进入mysql数据库中)Databasechangedmysqlshowtables;(查看数据表)+---------------------------+|Tables_in_mysql|+---------------------------+|columns_priv||db||event||func||general_log||help_category||help_keyword||help_relation||help_topic||host||ndb_binlog_index||plugin||proc||procs_priv||servers||slow_log||tables_priv||time_zone||time_zone_leap_second||time_zone_name||time_zone_transition||time_zone_transition_type||user|+---------------------------+23rowsinset(0.04sec)mysql编译安装的mysql数据库的数据文件存储在目录“/usr/local/mysql/var”中,(yum安装的mysql数据库的数据文件存储在目录“/var/lib/mysql”中)每个数据库对应一个目录,用于存储数据表文件。每一个数据表对应为三个文件,后缀名分别为“.frm”,“.MYD”,“.MYI”。[root@localhost~]#cd/usr/local/mysql/var/[root@localhostvar]#ls(mysql和test数据库)localhost.localdomain.errmysqlmysql-bin.000002mysql-bin.000004mysql-bin.indexlocalhost.localdomain.pidmysql-bin.000001mysql-bin.000003mysql-bin.000005test[root@localhostvar]#查看数据库mysql中的表:[root@localhostvar]#cdmysql(数据库mysql下的所有表)db.frmdb.MYDdb.MYI……………………………………………………………………………查看mysql数据库下的user表对应的文件数据:[root@localhostmysql]#ls|grepuser(user数据表对应的三个文件)user.frmuser.MYDuser.MYI[root@localhostmysql]#(3)显示数据表的结构Describe语句:用于显示数据表中列的信息,或者叫显示表的结构,以“数据库名.表名”作为命令参数。格式为:Describe[数据库名.]表名当省略数据库名时,则认为是查询当前数据库中的表。查看mysql数据库中user表的信息。mysqlusemysql;Databasechangedmysqldescribeuser;+-----------------------+-----------------------------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+-----------------------+-----------------------------------+------+-----+---------+-------+|Host|char(60)|NO|PRI||||User|char(16)|NO|PRI||||Password|char(41)|NO|||||Select_priv|enum('N','Y')|NO||N|||Insert_priv|enum('N','Y')|NO||N|+-----------------------+-----------------------------------+------+-----+---------+-------+39rowsinset(0.00sec)mysql1.创建新的数据库Createdatabase语句:用于创建一个新的数据库,使用数据库名称作为参数。命令格式为:mysqlhelpcreatedatabase;Name:'CREATEDATABASE'Description:Syntax:CREATE{DATABASE|SCHEMA}[IFNOTEXISTS]db_name[create_specification]...create_specification:[DEFAULT]CHARACTERSET[=]charset_name|[DEFAULT]COLLATE[=]collation_name说明:CREATE:关键字{DATABASE|SCHEMA}:关键字,选择一个即可[IFNOTEXISTS]:不存在的情况下创建,为避免出错可用此项db_name:起个数据库名称[create_specification]...:其他可指定的选项,如:[DEFAULT]CHARACTERSET[=]charset_name:定义字符集|[DEFAULT]COLLATE[=]collation_name:定义字符集排序规则,DEFAULT可省略创建一个名为“auth“的新数据库:mysqlcreatedatabaseauth;QueryOK,1rowaffected(0.02sec)mysql创建数据库需要有足够的权限,且数据库名称必须是唯一的。刚建立的数据库是空的,不包含任何表。在datadir指定的数据目录下会对应有一个与数据库名相同的目录。2.修改数据库数据库只能修改字符集和字符集排序,通常不会修改数据库名称等操作。alterdatabase语句:修改字符集和字符集排序。格式:mysqlhelpalterdatabase;Name:'ALTERDATABASE'Description:Syntax:ALTER{DATABASE|SCHEMA}[db_name]alter_specification...ALTER{DATABASE|SCHEMA}db_nameUPGRADEDATADIRECTORYNAMEalter_specification:[DEFAULT]CHARACTERSET[=]charset_name|[DEFAULT]COLLATE[=]collation_name3.删除一个数据库Dropdatabase语句:用于删除指定的数据库,需要使用数据库名称作为参数。命令格式:mysqlhelpdropdatabase;Name:'DROPDATABASE'Description:Syntax:DROP{DATABASE|SCHEMA}[IFEXISTS]db_name删除auth数据库:mysqldropdatabaseauth;\QueryOK,0rowsaffected(0.01sec)mysqluseauth;ERROR1049(42000):Unknowndatabase'auth'mysql4.创建新的数据表Createtable语句:用于在数据库中创建新的数据表,需要使用数据表名称作为参数。方法有很多种:1、直接定义一张空表;2、从其它表中查询出数据,并以之创建新表;3、以其它表为模板创建一个空表;命令格式为:mysqlhelpcreatetable;Name:'CREATETABLE'Description:Syntax:CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name(create_definition,...)[table_options][partition_options]……………………………………..其中:table_option:ENGINE[=]engine_name:指定表的存储引擎,不指定继承数据库的|AUTO_INCREMENT[=]value:自动增长|AVG_ROW_LENGTH[=]value:平均行长度|[DEFAULT]CHARACTERSET[=]charset_name:字符集|CHECKSUM[=]{0|1}:是否启用校验和|[DEFAULT]COLLATE[=]collation_name:排序规则|MAX_ROWS[=]value:最多允许存储多少行|ROW_FORMAT[=]{DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}:行格式…………………………………例如:mysqlCREATETABLEtb(idINTUNSIGNEDNOTNULLAUTO_INCREMENTPRIMARYKEY,NameCHAR(20)NOTNULL,AgeTINYINTNOTNULL)ENGINE=myisam;QueryOK,0rowsaffected(0.00sec)说明:AUTO_INCREMENT:默认地,AUTOINCREMENT的开始值是1,每条新记录递增1。创建索引方式:单字段:PRIMARYKEYUNIQUEKEY单或多字段:PRAMARYKEY(col,...)UNIQUEKEY(col,...)INDEX(col,...)直接定义一张空表;在auth数据库中创建一个名为”users”的表。包括两个字段user_name,user_passwd,均为非空字符串值,初始密码设为123456,其中user_name字段被设置为关键索引字段(PRIMARYKEY):mysqluseauth;(进入数据库auth)Databasechangedmysqlcreatetableusers(user_namechar(30)notnull,user_passwdchar(20)notnulldefault'123456',primarykey(user_name));QueryOK,0rowsaffected(0.02sec)mysqlshowtables;+-------------------+|Tables_in_zhangdb|+-------------------+|tb||tb1||users|+---------