mysql命令行如何建库_MySQL心得2--命令行方式建库和表

1.创建使用create database或create schema命令可以创建数据库。create database 库名create database if not exists 库名(创建库并检验创建的库是否存在,不存在则建,存在就不建了)MySQL不允许两个数据库使用相同的名字,使用ifnot exists从句可以不显示

1.创建

使用create database或create schema命令可以创建数据库。

create database 库名

create database if not exists 库名(创建库并检验创建的库是否存在,不存在则建,存在就不建了)

MySQL不允许两个数据库使用相同的名字,使用ifnot exists从句可以不显示错误信息

显示所有数据库: showdatabases;  www.2cto.com

显示创建数据库的定义信息: show create dabasese 库名

2. 创建了数据库之后使用USE命令可指定当前数据库。

语法格式:use  db_name;

说明:这个语句也可以用来从一个数据库“跳转”到另一个数据库,在用create database语句创建了数据库之后,该数据库不会自动成为当前数据库,需要用这条USE语句来指定。

注意:在MySQL中,每一条SQL语句都以“;”作为结束标志。

mySQL语法中不区分大小写。创建数据库的必须是系统管理员,或者拥有用户级别的create权限。在安装MySQL的过程中已经创建了系统管理员,名为root,假设密码为root。

3.创建库的同时指定字符集,校对规则:

create database mydb character set utf8

collate utf8-general_ci;

character set:指定数据库字符集(Charset),collate:指定字符集的校对规则

4.修改数据库,只能改参数

数据库创建后,如果需要修改数据库的参数,可以使用alter database命令。

语法格式:

alter {database | schema} [db_name]

alter_specification [, alter_specification] ...

其中alter_specification:  www.2cto.com

[default] character set charset_name

| [default] collate collation_name

说明:

alter database用于更改数据库的全局特性,这些特性储存在数据库目录中的db.opt文件中。用户必须有对数据库进行修改的权限,才可以使用 alterdatabase。修改数据库的选项与创建数据库相同,功能不再重复说明。如果语句中数据库名称忽略,则修改当前(默认)数据库。

5.删除数据库

drop database 库名

drop database if exists 库名(避免删除不存在的数据库时出现的MySQL错误信息。)

注意:这个命令必须小心使用,因为它将删除指定的整个数据库,该数据库的所有表(包括其中的数据)也将永久删除。

6.创建表

创建表就是创建表的结构:包含哪些字段(属性),字段名,字段类型

create table 表名

(字段名1 类型,

字段名2  类型,

。。。。

);

举例:创建一个学生表

use 库名(确定你的表建在哪个库中,把此库变为当前数据库);

create table xs

www.2cto.com

(

id int,

name char(10),

sex char(2)

);

Create [temporary] table [if not exists] tbl_name

[ ( [column_definition] , ... | [index_definition] ) ]

[table_option] [select_statement];

说明:

●  temporary:该关键字表示用create命令新建的表为临时表。不加该关键字创建的表通常称为持久表,在数据库中持久表一旦创建将一直存在,多个用户或者多个应用程序可以同时使用持久表。有时候需要临时存放数据,例如,临时存储复杂的select语句的结果。此后,可能要重复地使用这个结果,但这个结果又不需要永久保存。这时,可以使用临时表。用户可以像操作持久表一样操作临时表。只不过临时表的生命周期较短,而且只能对创建它的用户可见,当断开与该数据库的连接时,MySQL会自动删除它们。

●  创建表时也可使用if not exists语句来判断创建的表是否已存在,避免出现错误。

●  要创建的表的表名(tbl_name)必须符合标志符规则,如果有MySQL保留字必须用单引号括起来。

●  column_definition:列定义,包括列名、数据类型,可能还有一个空值声明和一个完整性约束。

●  index_definition:表索引项定义,主要定义表的索引、主键、外键等,具体定义将在后面讨论。  www.2cto.com

●  table_option:用于描述表的选项。

●  select_statement:可以在create table语句的末尾添加一个select语句,在一个表的基础上创建表

7.修改表结构:增加字段   修改旧字段   删除字段

alter table 表名

add 字段名 类型(宽度)         //增加字段

modify 旧字段 类型             //修改旧字段

drop 字段名                   //删除字段

change 旧字段名 新字段内容     //改列名

order by col_name            //排序

convert  to character set charset_name [字符集名]    //将字符集转换为二进制

[default]character set charset_name [字符集名]   //修改默认字符集

举例:在学生表中增加birthday字段、修改name字段、修改字段name的名;

alter table xs

add birthday date;

www.2cto.com

modify name varchar(20);

change name sname varchar(20);

8.修改表名

rename table 旧名 to 新名

分类

数据类型

说明

数值类型

bit (M)

tinint [unsigned] [zerofill]

bool,boolean

smallint [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。

www.2cto.com

使用0或1表示真或假

2的16次方

2的32次方

2的64次方

M指定显示长度,d指定小数位数

表示比float精度更大的小数

文本、二进制类型

char(size) char(20)

varchar(size)  varchar(20)

blob    longblob

text(clob)    longtext(longclob)

固定长度字符串

可变长度字符串

二进制数据

大文本

时间日期

date/datetime/TimeStamp

日期类型(YYYY-MM-DD)  (YYYY-MM-DD HH:MM:SS),TimeStamp表示时间戳,它可用于自动记录insert、update操作的时间

注意: 在字符数据类型和数值数据类型之后,MySQL允许指定一个数据类型选项用来改变数据类型的属性和功能。

对于字符数据类型,MySQL支持两种数据类型选项:characterset和collate。如果要区分字符的大小写情况,可以在字符类型后面加上bingary。

对于除bit以外的数值数据类型,MySQL允许添加一个或多个数据类型选项。unsigned:不允许负值。zerofill:当插入的值长度小于字段设定的长度时,剩余部分用0填补。

与int有关的类型与java中的bit、short、int、long分别对应。

varchar、bolb和text类是变长类型。每个类型的存储需求取决于列值的实际长度。

9.  列定义column_definition格式如下:

col_name  type  [not null | null] [default default_value]

[auto_increment] [unique [key] | [primary] key]

[comment 'string'] [reference_definition]

说明:  www.2cto.com

●  col_name:表中列的名字。列名必须符合标志符规则,长度不能超过64个字符,而且在表中要唯一。如果有MySQL保留字必须用单引号括起来。

●  type:列的数据类型,有的数据类型需要指明长度n,并用括号括起,MySQL支持的数据类型在附录C中介绍。

●  auto_increment:设置自增属性,只有整型列才能设置此属性。当插入null值或0到一个auto_increment列中时,列被设置为value+1,在这里value是此前表中该列的最大值。auto_increment顺序从1开始。每个表只能有一个auto_increment列,并且它必须被索引。

● not null | null:指定该列是否允许为空。如果不指定,则默认为null。

●  default default_value:为列指定默认值,默认值必须为一个常数。其中,BLOB和TEXT列不能被赋予默认值。如果没有为列指定默认值,MySQL自动地分配一个。如果列可以取NULL值,默认值就是NULL。如果列被声明为NOT NULL,默认值取决于列类型:

(1)对于没有声明auto_increment属性的数字类型,默认值是0。对于一个auto_increment列,默认值是在顺序中的下一个值。

(2)对于除timestamp以外的日期和时间类型,默认值是该类型适当的“零”值。对于表中第一个timestamp列,默认值是当前的日期和时间。

(3)对于除enum的字符串类型,默认值是空字符串。对于enum,默认值是第一个枚举值。

●  unique key | primary key:两者都表示字段中的值是唯一的。primary key表示设置为主键,一个表只能定义一个主键,主键一定要为notnull。

●  comment 'string':对于列的描述,string是描述的内容。

●  reference_definition:指定参照的表和列。

10. (1).复制表 : create table 表名 like 表名1

语法格式:

create [temporary] table[if not exists] tbl_name

[ ( )like old_ name [ ] ]

| [as (select_statement)] ;

说明:

使用LIKE关键字创建一个与old _name表相同结构的新表,列名、数据类型、空指定和索引也将复制,但是表的内容不会复制,因此创建的新表是一个空表。使用as关键字可以复制表的内容,但索引和完整性约束是不会复制的。select_statement表示一个表达式,例如,可以是一条select语句。

(2).删除表 : drop table 表名(这个命令将表的描述、表的完整性约束、索引及和表相关的权限等都全部删除)  www.2cto.com

(3).修改表名 : rename子句,语法格式:

rename table old_name to new_name

new_tbl_name是新表名。例如,将表a改名为b:alter table  a rename to b ;除了上面的alter table命令,还可以直接用renametable语句来更改表的名字。

●  order by子句(以后介绍):用于在创建新表时,让各行按一定的顺序排列。注意,在插入和删除后,表不会仍保持此顺序。在对表进行了大的改动后,通过使用此选项,可以提高查询效率。在有些情况下,如果表按列排序,对于MySQL来说,排序可能会更简单。

●  table_options:修改表选项,具体定义与create table语句中一样。

可以在一个alter table语句里写入多个add、alter、drop和chang子句,中间用逗号分开。这是MySQL相对于标准SQL的扩展。在标准SQL中,每个alter table语句中每个子句只允许使用一次。

11.说明:表中大多数的选项涉及的是表数据如何存储及存储在何处。多数情况下,不必指定表选项。engine选项是定义表的存储引擎,具体在附录E中介绍。

举例:

USE mydb1;

CREATE TABLE XS

(

学号      char(6)    NOTNULL  primary KEY,

姓名      char(8)    NOTNULL ,

专业名  char(10)  NOT NULL ,

性别    tinyint(1) NOT NULL default  1

) engine=InnoDB;

说明:“primary KEY”表示将“学号”字段定义为主键。“default 1”表示“性别”的默认值为1。“engine=InnoDB”表示采用的存储引擎是InnoDB,InnoDB是MySQL在Windows平台默认的存储引擎,所以“engine=InnoDB”可以省略。

12.说明:

●  ignore:是MySQL相对于标准SQL的扩展。若在修改后的新表中存在重复关键字,如果没有指定ignore,当重复关键字错误发生时操作失败。如果指定了ignore,则对于有重复关键字的行只使用第一行,其他有冲突的行被删除。

●  column_definition:定义列的数据类型和属性,具体内容在create table的语法中已做说明。

●  first| after col_name:表示在某列的前或后添加,不指定则添加到最后。

注意:若表中该列所存数据的数据类型与将要修改的列的类型冲突,则发生错误。例如,原来char类型的列要修改成int类型,而原来列值中有字符型数据“a”,则无法修改。

13.   1).  空值(NULL)概念

空值通常表示未知、不可用或将在以后添加的数据。若一个列允许为空值,则向表中输入记录值时可不为该列给出具体值;而一个列若不允许为空值,则在输入时必须给出该列的具体值。

注意:表的关键字不允许为空值。空值不能与数值数据0或字符类型的空字符混为一谈。任意两个空值都不相等。  www.2cto.com

2).  列的IDENTITY(标志)属性

对任何表都可创建包含系统所生成序号值的一个标志列,该序号值唯一标志表中的一列,可以作为键值。每个表只能有一个列设置为标志属性,该列只能是decimal、int、numeric、smallint、bigint 或tinyint 数据类型。定义标志属性时,可指定其种子(即起始)值、增量值,二者的默认值均为 1。系统自动更新标志列值,标志列不允许空值。

在下列情况下,MySQL隐含地改变在一个CREATE TABLE语句给出的一个列类型(这也可能在ALTER TABLE语句上出现)。

14.MySQL隐含地改变列类型:

(1)长度小于4的varchar被改变为char。

(2)如果在一个表中的任何列有可变长度,结果使整个行是变长。

因此,如果一张表包含任何变长的列(varchar、text或Blob),所有大于3个字符的char列被改变为varchar列。这在任何方面都不影响用户如何使用列。在MySQL中这种改变可以节省空间并且使表操作更快捷。

(3)timestamp的显示尺寸必须是偶数且在2~14的范围内。如果指定0显示尺寸或比14大,尺寸被强制为14。从1~13范围内的奇数值尺寸被强制为下一个更大的偶数。

(4)不能在一个timestamp列里面存储一个NULL,将它设为NULL默认为当前的日期和时间。

如果想要知道MySQL是否使用了除指定的以外的一种列类型,在创建表之后,使用一个DESCRIBE语句即可。DESCRIBE语句在3.1.4节介绍。

15 type定义如下:

说明:在字符数据类型和数值数据类型之后,MySQL允许指定一个数据类型选项用来改变数据类型的属性和功能。

对于字符数据类型,MySQL支持两种数据类型选项:CHARACTERSET和COLLATE。如果要区分字符的大小写情况,可以在字符类型后面加上BINGARY。

对于除BIT以外的数值数据类型,MySQL允许添加一个或多个数据类型选项。UNSIGNED:不允许负值。ZEROFILL:当插入的值长度小于字段设定的长度时,剩余部分用0填补。

spatial_type是空间类型数据。

16.  表选项table_option定义如下:

{engine | type} = engine_name             //存储引擎

| auto_increment = value               //初始值

| auto_increment = value               //表的平均行长度

| [default] charcter set charset_name [collatecollation_name]  //默认字符集和校对

| checksum = {0 | 1}              //设置为1表示求校验和

| comment= 'string'               //注释

| connection = 'connect_string'     //连接字符串

| MAX_ROWS = value               //行的最大数

| MIN_ROWS = value               //列的最小数

| PACK_KEYS = {0 | 1 | DEFAULT}

| password = 'string'               //对.frm文件加密

| delay_key_write = {0 | 1}           //对关键字的更新

|row_format={DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}                     //定义各行应如何储存  www.2cto.com

| union = (tbl_name[,tbl_name]...)    //表示哪个表应该合并

| insert_method = { NO | FIRST | LAST}//是否执行INSERT语句

|data directory = 'absolute path todirectory'     //数据文件的路径

| index directory = 'absolute path todirectory’ //索引的路径

作者 tianyazaiheruan

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/383015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 少儿趣味编程下载_PYTHON少儿趣味编程

章认识Python11.1编程语言和Python11.1.1程序设计和编程语言11.1.2Python简介21.2Python的安装41.2.1Windows下的Python安装41.2.2MAC下的Python安装81.3个程序HelloWorld111.4开发工具IDLE121.4.1IDLE简介121.4.2用IDLE编写程序121.4.3IDLE的其他功能161.5小结18第2章变量、数…

rs485数据线接反_终于有人把RS485通讯的正确接线方式讲明白了,网友:这下好办了...

RS485是一个定义平衡数字多点系统中的驱动器和接收器的电气特性的标准,该标准由电信行业协会和电子工业联盟定义。使用该标准的数字通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号。RS485使得廉价本地网络以及多支路通信链路的配置成为可能。那么RS485通讯的正确…

骑马与砍杀python代码_GitHub - yunwei1237/scottish-fold: 一个关于骑马与砍杀的剧本制作工具...

scottish-fold一个关于骑马与砍杀的剧本简单快速的制作工具前言​在很久以前的时候,也就是刚开始玩骑砍的时候就想着能够制作一个自己的剧本,用于书写自己想要的故事。当我怀着远大的梦想去这么做的时候才发现,原来制作剧本没有自己想象的那么…

java tomcat 监控_java程序监控tomcat实现项目宕机自动重启并发送邮件提醒

最近由于老项目频繁挂掉,由于项目经过多批人之手,短时间难以定位问题,所以只好写一个监控程序。 时间比较紧半天时间,而且水平有限大神勿喷,有好的方法还请赐教。 1、问题描述:分两种情况1.1、tomcat 彻底挂…

java静态类和非静态类的区别_Java中静态内部类和非静态内部类到底有什么区别?...

内部类(Inner Class)和静态内部类(Static Nested Class)的区别:定义在一个类内部的类叫内部类,包含内部类的类称为外部类。内部类可以声明public、protected、private等访问限制,可以声明 为abstract的供其他内部类或外部类继承与扩展&#x…

java写便签_如何编写一个便签程序(用Java语言编写)

如何编写一个便签程序(用Java语言编写)热度:336 发布时间:2011-02-18 11:44:16如何编写一个便签程序(用Java语言编写)因为以前没有好好学习Java,都搞忘了,请大家原谅,也请你们指导一下,怎么编写这个程序&…

java 生成log4j_Java log4j配置每天生成一个日志文件 - 永恒ぃ☆心 的日志 - 网易博客...

一、配置属性文件log4j.propertieslog4j.rootLoggerINFO,stdout,Rlog4j.appender.stdoutorg.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layoutorg.apache.log4j.PatternLayout# Pattern to output the callers file name and line number.log4j.appender.stdout.layo…

java 子进程输出流_具有输入/输出流的Java进程

首先,我建议更换这条线路。Process process Runtime.getRuntime ().exec ("/bin/bash");带着线条ProcessBuilder builder new ProcessBuilder("/bin/bash");builder.redirectErrorStream(true);Process process builder.start();ProcessBuil…

java中if 运算符_[Java]Java基本语法结构(运算符,流程控制语句,if语句)

1:运算符(掌握)(1)算术运算符A:,-,*,/,%,,--B:的用法a:加法b:正号c:字符串连接符C:/和%的区别数据做除法操作的时候,/取得是商,%取得是余数D:和--的用法a:他们的作用是自增或者自减b:使用**单独使用放在操作数据的前面和后面效果一样。a或者a效果一样。*…

java 变量取值范围_JAVA中的变量及取值范围

字节是二进制数据的单位。一个字节通常8位长。但是,一些老型号计算机结构使用不同的长度。为了避免混乱,在大多数国际文献中,使用词代替byte。变量:变量的数据类型;变量名变量值数据类型基本型数值型(整数)布尔型浮点型…

java object强制类型转换_scala object 转Class Scala强制类型转换

asInstanceOf[T]将对象类型强制转换为T类型。还是由于泛型存在类型擦除的原因,1.asInstanceOf[String]在运行时会抛出ClassCastException异常,而List(1).asInstanceOf[List[String]]将不会。packageresti.webimportorg.springframework.beans.factory.annotation.Au…

java毛玻璃_模糊效果(毛玻璃效果)

模糊效果(毛玻璃效果)效果演示:1. 使用iOS自带的 UIImageImageEffects 文件文件中有这么几个方法:- (UIImage *)applyLightEffect;- (UIImage *)applyExtraLightEffect;- (UIImage *)applyDarkEffect;- (UIImage *)applyTintEffectWithColor:(UIColor *)…

java程序崩溃怎么重启_android 异常崩溃后 重启app(进程守护方式实现)

【实例简介】【实例截图】【核心代码】package com.sunfusheng.daemon.sample;import android.content.ComponentName;import android.content.Intent;import android.os.Looper;import android.util.Log;import com.blankj.utilcode.util.AppUtils;import com.sunfusheng.daem…

mysql 存储过程 循环结构 命名_mysql存储过程----循环结构

循环结构一共分为三种:三种循环结构分别为while、repeat、loop。while循环语法while 表达式(如果表达式为true则执行业务逻辑,否则不执行,与repeat循环相反,repeat循环满足表达式退出循环,不满足一直执行) do业务逻辑e…

mysql 组合索引 or_Mysql_组合索引和单列索引

一、目标什么时候使用组合索引,什么时候使用单独索引组合索引、单独索引区别组合索引:最左前缀匹配原则二、前期数据准备1. 建表CREATE TABLE user (uidint(11) NOT NULLAUTO_INCREMENT,namevarchar(50) DEFAULT NULL,pwdvarchar(50) DEFAULT NULL,creat…

mysql与mangodb多租户_MongoDB多租户(Java):如何使用MongoClient在运行时切换具有不同数据库凭据的MongoDB数据库?...

我正面临一个关于MongoDB多租户的问题.我有两个不同的mongoDB数据库(db1和db2).这两者都有不同的凭据.db1凭据:userName:admin密码:passwddb2凭据:userName:admin1密码:passwd1我需要在运行时从一个数据库切…

python 库 全局变量_python局部变量和全局变量global

当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 局部 的。这称为变量的 作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。使用局部变量例7.3 使用局部…

java 自省_自知 自省 自立 自信 自尊 自治 自强 自制

自知 自省 自立 自信 自尊 自治 自强 自制能知人者有智力,能自知才是真正的智者;能战胜别人者有力量,能战胜自己才是真正的强者;能知足者就是富有,能勤奋顽强坚持才是真正的有志者;不失其立足之地的人可以长…

java中json重复数据结构_JAVA把各种数据结构转换为JSON格式

Java代码import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import net.sf…

字节字符区别Java_【JAVA基础】字符数组与字节数组的区别

String.getBytes()和String.tocharArray(),字节数组和字符数组的区别String.getBytes()是将字符串转化为一个字节数组。而String.toCharArray()是将一个字符串转化为一个字符数组。【例如】byte bys[] “国庆60周年”.getBytes();char chs[]“国庆60周年”.toCharAr…