Mysql数据库的基本应用

一.数据库的基本命令

登录数据库

[root@yeyue ~]# mysql -h127.0.0.1 -uroot-p123456
 
mysql> show databases;

查看服务器已有的库

mysql> select database();

显示当前所在的库

mysql> show tables;

显示当前库存在的表

mysql> select * from user\G

换行显示表里的所有记录(*代表字段,带\G表示换行显示)

mysql> use test

切换到指定库

mysql>desc 表名                           --显示当前库内制定表的表结构

二.数据库的添加,删除

mysql> create database yeyue;    --新建一个名称为yeyue的库

(苦名具有唯一性

 

区分字母大小

 

数据库名 可以使用数字、字母、下划线,但不能是纯数字

 

不要使用特殊符号

 

不要使用关键字性)

mysql> drop database yeyue;      --删除库yeyue,库内的表将一并删除

 

三.数据库的各个数据类型

1.数值类型

整型  例:(createtable 表名(age tinyint(3) unsigned));

代表数值的最大范围

代表对应的字段只保存正数

代表数值宽度,数值不够指定宽度时,在左边填空格补位。数值大于三位时由数值类型决定。由宽度仅显示宽度,存数值的大小由类型决定。

使用关键字ZEROFILL时,填0代替空格补位

当字段值与类型不匹配时,字段值作为0处理

数值超出范围时,仅保存最大/最小值

浮点型 例: create table 表名 (gz float(9.3));

代表但精度浮点数

代表数值总长度

代表小数点后位数,整数位数则为9-3=6

2.字符类型1-2551-65535

定长   char(N)

当存储的字符小于存储宽度N时,用空格补足指定的宽度

当存储的字符大于制定宽度时,只存储开头到N值的位数

变长     varchar(N)

根据存储字符的多少来开辟存储空间,当存储的字符位数大于N值时,值存储开头到N值的位数

*数值类型的宽度是显示宽度,并不能限制字段存储数值的大小,字段存储数值的大小由字段的类型决定。设置宽度的目的,是为里节省内存空间。

3.日期时间类型:

year     年

date           日期

time     时间     hh:mm:ss

datetime/timestamp 日期时间    yyyy-mm-dd hh:mm:ss

例:

mysql> create table yy(

 

   -> name varchar(10),

变长字符宽度最大为10

   -> age tinyint(2) unsigned,

年龄字符最大长度为2,只有正数

   -> syear year,

出生年

   -> birthdat date,

生日

   -> uclass time,

上课时间

   -> metting datetime

约会时间

);

 

mysql> select * from yy;               --查看表yy内的所有内容,*代表所有内容,如查看具体项*处改为具体字段名,如select name from yy;或select (name,age) from yy;

 

常用的时间函数:

mysql> insert intoyy(syear)values(now());  --添加出生年份通过本机现在日期中提取年份的内容

 

用2位数给year类型字段赋值时的显示方式

 

1~69     20xx

 

70~99   19xx

 

0           0000

 

 

日期时间类型:

 

datetime 与timestamp  区别

大小不一样

存储范围不一样

赋值方式不一样

 

插入记录时不给timestamp类型的字段赋值时,字段用系统时间给字段赋值

     

4.枚举类型

单选     enum    只能在列举的范围内选一个(选择项可以通过顺序用数字代替)

在列举的范围内选一个或者多个

例:

create   table  yy(
 
name  varchar(10),
 
age  tinyint(2) unsigned,
 
sex  enum("boy","gril"),
 
likes set("book","music","film","gril")
 
);
 
mysql> insert into yy values
 
   ->("jim",23,"no","book,film");
 
insert into yy(name,age,sex) values("jerry",39,"2");    --(选择项可以通过顺序用数字代替)

5.在表内添加字段值,删除字段,删除表

方法1:insert   into   数据库名.表名

 values

(字段名1的值,"字段名2的值",字段名,N的值);

在指定库内的指定表内添加各字段内容

 

方法2:insert   into   数据库名.表名(字段名1,字段名2,字段名N)

字段名1的值,"字段名2的值",字段名,N的值);

 

在指定库内的指定表内添加指定字段的内容

方法3:insert   into   数据库名.表名(字段名1,字段名2,字段名N)

 values

(字段名1的值,"字段名2的值",字段名,N的值),(字段名1的值,"字段名2的值",字段名,N的值)

在指定库内的制定表内添加多行字段内容

delete from 表名  --删除指定表名内的所有记录

drop table 表名  --删除指定表

 

四.数据库表内的约束条件

字段是否允许为空  null   默认允许为空

 

不允许给字段赋null值

 

                           name  char(3)    not null,

 

默认值    向表中插入记录时,不给字段赋值时,使用默认值给自己赋值

 

默认值默认为NULL

 

age  int(3)   default  23,
 
              name   varchar(3) not null   defualt"userpublic",
mysql> create table t1(
 
   -> name varchar(7) not null,
 
   -> age tinyint(2) not null default 27,
 
   -> sex enum("b","g") notnull default "b"
 
   -> );
 
mysql> desc t1
 
   -> ;
 
+-------+---------------+------+-----+---------+-------+
 
| Field | Type          | Null | Key | Default | Extra |
 
+-------+---------------+------+-----+---------+-------+
 
| name | varchar(7)    | NO   |    | NULL    |       |
 
| age  | tinyint(2)    | NO   |    | 27      |       |
 
| sex  | enum('b','g') | NO   |     | b      |       |
 
+-------+---------------+------+-----+---------+-------+
 
mysql> insert into t1(name)values("dd");

添加用户dd,其他延续默认值

mysql> insert into t1(name,age)values("dd",33);  --添加用户dd,年龄不延续默认值
mysql> select * from t1;
 
+------+-----+-----+
 
| name | age | sex |
 
+------+-----+-----+
 
| yy  |  27 | b   |
 
| dd  |  27 | b   |
 
| dd  |  33 | b   |
 
+------+-----+-----+

 

 

可看到age,sex字段自动添加里默认值,指定的值不延续

五.表结构的修改

*受表中已有记录的限制,同时会影响表中数据的存储。所有修改表结构最好在表中还没有记录的时候修改。

修改格式: alter table 表名 动作;

1.添加字段

add  字段名类型;                --必有项

add  字段名类型(宽度) 约束条件;

add 字段名 类型(宽度)约束条件,add 字段名 类型(宽度)约束条件–修改多条记录

*默认新添加的字段都追加在已有字段的下方

first 把新字段添加在已有字段的首位

例:alter table   t20 add  stu_num varchar(4) not nullfirst;

after 字段名    把新字段添加在已有字段的下方

例:alter table   t20 add  birthday date not null  after sex;

2.删除字段drop 

 

表名drop  字段名;   --删除单一字段

 

表名  drop  字段名1,drop  字段名2;  --删除多个字段

3.修改字段类型

alter table 表名modify 字段名 新的类型(宽度)约束条件  --修改单一字段类型

alter table 表名modify 字段名 新的类型(宽度)约束条件,alter table 表名 modify 字段名 新的类型(宽度)约束条件      --修改多个字段类型

例:mysql> alter table yy modifygz tinyint(8);  --将字段gz的类型改为tinyint(8)

4.修改字段名

alter table 表名change  源字段名  新字段名   类型(宽度)  约束条件;

例:mysql> alter table yy changegongzi gz float(8,3)

修改了字段名和字段类型

 



转载于:https://blog.51cto.com/yeyue/1432726