免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1594 | 回复: 0
打印 上一主题 下一主题

mysql学习(一) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-22 14:44 |只看该作者 |倒序浏览
本文来自
nibull.cublog.cn
博客
常用查询
mysql> select version();        查看MySQL的版本号
mysql> select current_date();        查看MySQL的当前日期
mysql> select version(),current_date(); 同时查看MySQL的版本号和当前日期
mysql> show databases;            显示当前存在的数据库
mysql> USE mysql            选择使用数据库(USE和QUIT命令不需要分号结束)
Database changed
mysql> select database();        显示当前选择的数据库
mysql> show tables;            显示当前数据库中存在的表
mysql> select * from db;        显示表(db)的内容   
mysql> describe mytable;        显示表的结构
或show columns from 表名;
mysql> select
-> user()
-> \c
mysql>
练习如下操作:
  mysql> select
  -> USER()
  -> ,
  -> now()
  ->;
mysql> Select (20+5)*4;
mysql> Select (20+5)*4,sin(pi()/3);
mysql> Select (20+5)*4 AS Result,sin(pi()/3); (AS: 指定假名为Result)
查看MySQL当前用户占用的连接数
命令: show processlist;
如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。
show processlist;只列出前100条,如果想全列出请使用show full processlist;
mysql> show processlist;
一。数据库:
    mysql> CREATE DATABASE abccs;         创建一个数据库         
      mysql> USE abccs            选择使用数据库
      mysql> drop database 数据库名;        删除数据库
二。表:
    1。创建一个表mytable:
   
      mysql> CREATE TABLE mytable
          -> (
          -> name VARCHAR(20),
          -> sex CHAR(1),
          -> birth DATE,
          -> birthaddr VARCHAR(20)
          -> );
    建立一个员工生日表,表的内容包含员工姓名、性别、出生日期、出生城市。
      由于name、birthadd的列值是变化的,因此选择VARCHAR,其长度不一定是20。
        可以选择从1到255的任何长度,如果以后需要改变它的字长,可以使用ALTER TABLE语句。
      性别只需一个字符就可以表示:"m"或"f",因此选用CHAR(1);
      birth列则使用DATE数据类型。
    2。查询刚添加的记录:
    mysql> select * from mytable;
      Empty set (0.00 sec)      这说明刚才创建的表还没有记录。
    3。添加新记录:
    mysql> insert into mytable               
          -> values
          ->(
          ->'abccs',
          ->'f',
          ->'1977-07-07',
          ->'china'
          ->);
    4。用文本方式将数据装入一个数据库表:
         一条一条地添加新记录,实在太麻烦。
       创建一个文本文件“mysql.txt”,按表结构排好每行每条记录,用定位符(tab)把值分开。
        abccs f 1977-07-07 china  
          mary f 1978-12-12 usa
          tom m 1970-09-02 usa
       使用此命令将文本文件“mytable.txt”装载到表中:   
         mysql> Load data local infile "mytable.txt" into table mytable;
    数据传入命令load data local infile "文件名" into table 表名;
    注意:你最好将文件复制到mysql/bin目录下,并且要先用use命令选表所在的库。
   
    5。更新记录:
    mysql> update mytable set birth = "1973-09-02" where name = "tom";
   
    6。删除记录:
      mysql> delete from mytable where id=10;         //删除掉所有id=10的记录;
    mysql> delete from mytable where id=10 limit 1; //限制删除掉1条id=10的记录;
    mysql> delete from mytable            //删除一个表的全部记录;
    mysql> DELETE FROM t1 WHERE C>10;
      mysql> drop table tablename1,tablename2,…;    //删除整一个表或多个表,小心使用。
    7。重命名表:
    mysql> alter table t1 rename t2;
    8。修改mysql的表结构:
    查看mysql的表结构:
      mysql> describe mytable;   或用show columns from 表名;
   
    修改字段属性
    mysql> alter table tablename modify id int(10) unsigned auto_increment primary key not null
    修改默认值
    mysql> alter table tablename alter id default 0
    给字段增加primary key
    mysql> alter table tablename add primary key(id);
    删除primary key
    1、alter table tablename drop primary key;
    2、drop primary key on tablename;
    修改table表数据引擎
    mysql> alter table tableName ENGINE = MyISAM (InnoDB);
    增加一新字段名:
      mysql> alter table mytable add column single char(1);
    mysql> ALTER TABLE table ADD field INT(11) UNSIGNED NOT NULL
    删除字段
    mysql> alter table t2 drop column c;
    附:
    为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样),
    并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:
    ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
    增加一个新TIMESTAMP列,名为d:
    ALTER TABLE t2 ADD d TIMESTAMP;
    在列d上增加一个索引,并且使列a为主键:
    ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);
    增加一个新的AUTO_INCREMENT整数列,命名为c:
    ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
   
    注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,
    并且另外我们声明c为NOT NULL,因为索引了的列不能是NULL。
    使用name列的头10个字符创建一个索引:
    CREATE INDEX part_of_name ON customer (name(10));
三。数据的备份与恢复:
导出和导入数据:(命令在DOS的mysql/bin目录下执行)
导出表
mysqldump --opt school > school.sql
注释:将数据库school中的表全部备份到school.sql文件,school.sql是一个文本文件,
文件名任取,打开看看你会有新发现。
mysqldump --opt school teacher student > school.teacher.student.sql
注释:将数据库school中的teacher表和student表备份到school.teacher.student.sql文
件,school.teacher.student.sql是一个文本文件,文件名任取,打开看看你会有新发现。
导入表
mysql
mysql>create database school;
mysql>use school;
mysql>source school.sql;
(或将school.sql换为school.teacher.sql / school.teacher.student.sql)
导出数据库
mysqldump --databases db1 db2 > db1.db2.sql
注释:将数据库dbl和db2备份到db1.db2.sql文件,db1.db2.sql是一个文本文件,文件名
任取,打开看看你会有新发现。
(举个例子:
mysqldump -h host -u user -p pass --databases dbname > file.dump
就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中。)
导入数据库
mysql  all-databases.sql
注释:将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,文件名任取。
导入数据库
mysql
mysql>drop database a;
mysql>drop database b;
mysql>drop database c;
...
mysql>source all-databases.sql; (或exit退出mysql后 mysql  备份数据文件名
恢复:mysql -h"数据库主机名" -u"用户名" -p"密码" "数据库名" d:\sql.bak
恢复用mysql -u root -p ***** ksedata

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/78343/showart_1332338.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP