mysql基础之对库表操作

原文: mysql基础之对库表操作

查看一下所有的库,怎么办?

Mysql>Show databases;

 

选库语句: Use 库名

创建一个数据库create database 数据库名 [charset 字符集]


删除一个数据库: drop database 数据库名;

把数据库改改名?

Mysql,/列可以改名,database不能改名.

phpMyAdmin似乎有这功能他是建新库,把所有表复制到新库,再删旧库完成的.

当选了库之后,我们面对的是表


查看库下面的所有表: show  tables;

 

先给大家提供一个简单的建表语句

create table stu (

snum int,

sname varchar(10)

)engine myisam charset utf8;

删除表drop table stu;

修改表名:


清空表数据truncate 表名



Truncatedelete是有区别的,

在于 truncate相当于删表再重建一张同样结构的表,操作后得到一张全新表.

delete是从删除所有的层面来操作的.

Trucate相当于把旧的学籍表扔了重画一张,

Delete相当于用橡皮把学籍表的数据库擦掉.

如果决定全清空的下,truncate速度更快一些.

查看表结构

: desc tableName; //查看表结构

12: 解决字符集问题:

默认建表一般用utf8, 而我们在windows下窗口是GBK,

因此,需要声明字符集.

Set names gbk;

发现的1小问题 

语句打错以后应该退出本语句,再继续打新语句.也可以打\c,退出本语句.


如何破解数据库的密码:

1:通过任务管理器或者服务管理,关掉mysqld(服务进程)

2:通过命令行+特殊参数开启mysqld

Mysqld --skip-grant-tables

3:此时,mysqld服务进程已经打开,并且,不需要权限检查.

4:mysql -uroot  无密码登陆服务器.

5: 修改权限表

  A: use mysql;

  B:update user set Password = password(‘11111‘) where User = ‘root‘;

  C:flush privileges;


6:通过任务管理器,或服务管理,关掉mysqld服务进程.

7:再次通过服务管理,打开mysql服务.


建表语法

所谓建表就是一个声明列的过程.

create table 表名 (

列名列类型1  1参数,

列名列类型2参数,

....

...

列名列类型n参数

)engine myisam/innodb/bdb charset utf8/gbk/latin1...

 

 

修改表的语法

一张表,创建完毕,有了N.

之后还有可能要增加或删除或修改列 

 

Alter table 表名 add 列名称 列类型 列参数 [加的列在表的最后]

alter table m1 add birth date not null default ‘0000-00-00‘;

Alter table 表名 add 列名称 列类型 列参数 after 某列 [把新列加在某列后]

alter table m1 add gender char(1) not null default ‘‘ after username;

 

Alter table 表名 add 列名称 列类型 列参数 first [把新列加在最前面]

: alter table m1 add pid int not null default 0 first;

 

 

删除列:

Alter table 表名  drop 列名

 

 

修改列类型:

Alter table 表名 modify 列名 新类型  新参数

:alter table m1 modify gender char(4) not null default ‘‘;

 

修改列名及列类型

Alter table 表名 change 旧列名 新列名 新类型 新参数

:alter table m1 change id uid int unsigned;

 

??如果列类型改变了,导致数据存不下怎么办?

比如,int 改成smallint.   如果不匹配,数据将会丢失,或者在mysqlstrict_mode,修改不了.


为什么建表时,not null default ‘‘ / default 0

:不想让表中出现null.

 

为什么不想要的null的值

:

不好比较,null是一种类型,比较时,只能用专门的is null 和 is not null来比较.

碰到运算符,一律返回null

效率不高,影响提高索引效果.

 

因此,我们往往,在建表时 not null default ‘‘/0


常用数据库管理语句:



create table goods (
  goods_id mediumint(8) unsigned primary key auto_increment,
  goods_name varchar(120) not null default '',
  cat_id smallint(5) unsigned not null default '0',
  brand_id smallint(5) unsigned not null default '0',
  goods_sn char(15) not null default '',
  goods_number smallint(5) unsigned not null default '0',
  shop_price decimal(10,2) unsigned not null default '0.00',
  market_price decimal(10,2) unsigned not null default '0.00',
  click_count int(10) unsigned not null default '0'
) engine=myisam default charset=utf8;


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。