mysql学习笔记

http://doc.mysql.cn/mysql5/refman-5.1-zh.html-chapter/index.html 

mysql 学习笔记:
基本语法:
1、连接
  cmd->mysql -uroot -p
  初始密码为空
2、select:
  select语句不区分大小写;
  select语句可以当行,也可以多行,需要以分号告之已输入完毕
  select语句中,若出现'or",则会出现相应的提示符:'>、">
  提示符    含义
  mysql>     准备好接受新命令。
  ->         等待多行命令的下一行。
  '>         等待下一行,等待以单引号(“'”)开始的字符串的结束。
  ">         等待下一行,等待以双引号(“"”)开始的字符串的结束。
  `>         等待下一行,等待以反斜点(‘`’)开始的识别符的结束。
 /*>         等待下一行,等待以/*开始的注释的结束。
3、取消输入:
  \c:通过该命令,告知取消已经输入的内容 需要取消
4、创建数据库
  mysql>use :告知使用哪个数据库
  create database :建立一数据库,其中数据库名是区分大小写的
  创建完数据库之后,需要通过use命令显式地指定使用它
  还可以在调用mysql时,通过命令行选择数据库:
  shell> mysql -h host -u user -p
         Enter password: ********
  先输入命令,再输入密码,如果想在命令行上输入密码,可加在-p后面,如-ppassword,不是-p password。不建议这样,会被窥探
5、创建表
  刚创建的数据库是空的,可通过show tables命令查看:
  mysql> SHOW TABLES;
  Empty set (0.00 sec)
  建立table的语法与Oracle是一样的:  
  mysql>   create table pet(name varchar(20),owner varchar(20),species varchar(20),sex char(1),birth date,death date);
  Query OK, 0 rows affected (0.03 sec)
  字段的长度,可以通过alter table语句修改。oracle有varchar2,mysql没有。这个要注意
 
  describe:可通过describe命令产看table的结构:
  mysql> describe pet;
  +---------+-------------+------+-----+---------+-------+
  | Field   | Type        | Null | Key | Default | Extra |
  +---------+-------------+------+-----+---------+-------+
  | name    | varchar(20) | YES  |     | NULL    |       |
  | owner   | varchar(20) | YES  |     | NULL    |       |
  | species | varchar(20) | YES  |     | NULL    |       |
  | sex     | char(1)     | YES  |     | NULL    |       |
  | birth   | date        | YES  |     | NULL    |       |
  | death   | date        | YES  |     | NULL    |       |
  +---------+-------------+------+-----+---------+-------+
  6 rows in set (0.01 sec)
6、将数据装入表中:
  可使用load data 及insert 两个方式。insert和oracle的用法一致。
  load data不错,比oracle方便多了
  创建一个文本文件,pet.txt,列的顺序与table一致,列之间使用tab 键分开。在windows中的编辑器,使用\r\n作为行的结束符;列为空的部分,可使用\n表示
  mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
    -> LINES TERMINATED BY '\r\n';
 
  insert的方式:
  mysql> INSERT INTO pet
    -> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
7、从表中检索数据
  select、update、delete与oracle同。支持distinct用法,支持order by
  在oracle中,取当前的日期为:select sysdate from dual;mysql则不需要加后面的from,为select now();  或select curdate();
  在oracle中,select中不能实现判断,但mysql可以,例如:
  select 1>0;得到的结果为1:
  mysql> select 0>1;
  +-----+
  | 0>1 |
  +-----+
  |   0 |
  +-----+
  1 row in set (0.00 sec)

  mysql> select 0<1;
  +-----+
  | 0<1 |
  +-----+
  |   1 |
  +-----+
  1 row in set (0.00 sec)
 
  支持like ,not like,支持“%”,“_”->代表一个字符

  mysql提供的模式匹配得其他类型是使用扩展正则表达式的:
  扩展正则表达式的一些字符是:
  1)、‘.’匹配任何单个的字符。
  2)、 字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的范围,使用一个“-”。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。
  3)“ * ”匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配任何数量的数字,而“.*”匹配任何数量的任何字符。
  如果REGEXP模式与被测试值的任何地方匹配,模式就匹配(这不同于LIKE模式匹配,只有与整个值匹配,模式才匹配)。为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。

  为了找出以“b”开头的名字,使用“^”匹配名字的开始:
  mysql> SELECT * FROM pet WHERE name REGEXP '^b';
  如果你想强制使REGEXP比较区分大小写,使用BINARY关键字使其中一个字符串变为二进制字符串。该查询只匹配名称首字母的小写‘b’。
  mysql> SELECT * FROM pet WHERE name REGEXP BINARY '^b';
  为了找出以“fy”结尾的名字,使用“$”匹配名字的结尾:
  mysql> SELECT * FROM pet WHERE name REGEXP 'fy$';
  为了找出包含一个“w”的名字,使用以下查询:
  mysql> SELECT * FROM pet WHERE name REGEXP 'w';
  为了找出包含正好5个字符的名字,使用“^”和“$”匹配名字的开始和结尾,和5个“.”实例在两者之间:
  mysql> SELECT * FROM pet WHERE name REGEXP '^.....$';
  你也可以使用“{n}”“重复n次”操作符重写前面的查询:
  mysql> SELECT * FROM pet WHERE name REGEXP '^.{5}$';
  
  count()+group by:
  mysql> SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;
   


8、日期计算
   curdate()当前的年月日;
   year(日期),取日期的年份;
   month(日期),取日期的月份;
   dayofmonth(日期),取这个月的第几天;
  
9、获取数据库和表的信息:
   show databases;查询所有的存在数据库名字
   mysql> show databases;
   +--------------------+
   | Database           |
   +--------------------+
   | information_schema |
   | johnson            |
   | mysql              |
   | test               |
   +--------------------+
   4 rows in set (0.00 sec)

   使用select database() 查看当前的databse:
   mysql> select database();
   +------------+
   | database() |
   +------------+
   | johnson    |
   +------------+
   1 row in set (0.00 sec)
  
   当前数据库有什么表:show tables;
   查看表的结构:describe ;
   查看表的索引:show index from ;
  
   限制返回的行数,可以使用limit:
   select *from tablename limit 2;->限制返回2笔
10、用户变量:
   例如,要找出价格最高或最低的物品的,其方法是:
  mysql> SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop;
  mysql> SELECT * FROM shop WHERE price=@min_price OR price=@max_price;

初级的部分,先到这边吧
  
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/385592/viewspace-675226/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/385592/viewspace-675226/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值