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文件了