现在的位置: 首页 > 综合 > 正文

MYSQL数据库基础

2018年01月27日 ⁄ 综合 ⁄ 共 2259字 ⁄ 字号 评论关闭
MYSQL数据库基础语句大全

#登录[远程]据库
mysql -hlocalhost -uroot -p;

#修改密码
mysqladmin -uroot -pold password new;

#显示数据库
show databases;

#显示数据表
show tables;

#show语句的其他用法
show create database db_name;#显示建库结构
show create table tb_name\G;#显示建表结构
show CHARACTER SET LIKE 'latin%';#SHOW CHARACTER SET语句用于显示所有可用的字符集。
SHOW ENGINES\G;显示存储引擎的状态信息,检查存储引擎是否被支持,查看默认引擎是什么。

"\G"参数可格式化显示结果;

#选择数据库
use examples;

注:window窗口字符界面乱码
建议一般用utf8,window窗口下字符集是gbk,因此需要声明字符集,如set names gbk;

#创建数据库并设置编码utf-8 多语言
create database `examples` default character set utf8 collate utf8_general_ci;

#删除数据库
drop database examples;

注:Mysql中,表/列可以改名,database不能改名. 
phpMyAdmin似乎有这功能? 是建新库,把所有表复制到新库,再删旧库完成的. 

#建表
查看当前库下所有表: show tables;
create table test
(
 id int(10) unsigned zerofill not null auto_increment,
 email varchar(40) not null,
 ip varchar(15) not null,
 state int(10) not null default '-1',
 primary key (id)
)engine=InnoDB;

注意:
1.建表时为什么添加 not null default ''/default 0;
答:不想出现null值。
2.null值的缺点。
答:不好比较,null是一种类型,比较时只能用专门的is null 和is not null来比较。
碰到运算符一律返回null;
select null=null; 返回null
select null!=null; 返回null
效率不高,影响索引的检索速度。


#删除表: drop table stu;

#显示表结构
describe tb_name
show [full]columns from db_name.tb_name;

#删除表数据
truncate tb_name;#清空表数据,相当于把原表删除重新按原结构生成新表,自增索引从新开始
delete from tb_name where expir.. #把表数据删除一部分

#重命名表
alter table test_old rename test_new;
#添加列
alter table test add birth date not null default '0000-00-00'; 
alter table test add uname varchar(30) not null default '' after id;# 在id列之后插入列
alter table m1 add pid int not null default 0 first; #使用first 表字段将添加到第一列
#修改列
--modify修改列类型,语法:[alter table 表名 modify 列名 新类型 新参数]
alter table test modify gender char(4) not null default '';
--change修改列明及类型,语法:[alter table 表名 change 旧列名 新列名 新类型 新参数]
alter table test change id uid varchar(10) not null;

#删除列
alter table test drop pid;

#在MySQL数据库中拷贝数据表
在 MySQL 中拷贝表,将 old_table 表拷贝为 new_table 表。
1. 不拷贝表数据,只拷贝结构。
CREATE TABLE new_table LIKE old_table
2. 通过 SELECT 查询来拷贝,new_table 表会丢失主键、索引等信息。
引用
CREATE TABLE new_table AS
(
    SELECT *
    FROM old_table
)
3. 完全拷贝表
CREATE TABLE new_table LIKE old_table;
INSERT INTO new_table SELECT * FROM old_table;
4. 仅拷贝字段
CREATE TABLE new_table AS
(
    SELECT field1, field2 FROM old_table
)
5. 部分拷贝
CREATE TABLE new_table AS
(
    SELECT * FROM old_table WHERE field1 = test'
)
其他小技巧:
mysql>tee D:test.sql tee命令可将字符界面执行的sql语句和输出结果保存到文件
mysql快速导入数据文件
mysql>use dbtest;
mysql>set names utf8;
mysql>set autocommit=0;
mysql>source D:/www/sql/back.sql;
通过source命令导入多个文件,可以新建一个test.sql文件,里面存放下面的命令
source d:/a.sql;
source d:/b.sql;
运行
mysql>source D:/test.sql;
这样就可以在一个source命令里面导入多个sql文件了

抱歉!评论已关闭.