MYSQL学习笔记(二)—数据检索(select)

停了几天没碰MYSQL了,唉,对自己的惰性无语了,今晚熟悉下SELECT。(注:部分语句来自MYSQL5.1参考手册)

1、SELECT最简单的形式是从一个表中检索所有记录:

mysql> SELECT * FROM table_name;

2、两种修正数据的方法:

·         编辑文件pet.txt改正错误,然后使用DELETELOAD DATA清空并重新装载表(导入):

·                mysql> DELETE FROM pet;(先删除旧数据
·                mysql> LOAD DATA LOCAL INFILE 'pet.txt' INTO TABLE pet; (导入修改后的数据

然而, 如果这样操做,必须重新输入Puffball记录。

·         用一个UPDATE语句仅修正错误记录:

·                mysql> UPDATE pet SET birth = '1989-08-31' WHERE name = 'Bowser'; (UPDATE更新命令,个人觉得如果错误数据不是很多的话还是这种方式好点

UPDATE只更改有问题的记录,不需要重新装载数据库表。

3、从表中只选择特定的行。例如,如果你想要验证你对Bowser的生日所做的更改,按下述方法选择Bowser的记录:

mysql> SELECT * FROM pet WHERE name = 'Bowser';(指定数据表(pet)中的列name=Bowser的数据。!字符串比较对大小写不敏感)
mysql> select * from pet where birth >= '1997-12-9'; (检索1997-12-9(包括)以后出生的动物)
mysql> SELECT * FROM pet WHERE species = 'dog' AND sex = 'f';   (组合条件,找出雌性的狗)

ANDOR可以混用,但ANDOR具有更高的优先级。如果你使用两个操作符,使用圆括号指明如何对条件进行分组是一个好主意:

mysql> SELECT * FROM pet WHERE (species = 'cat' AND sex = 'm')
    -> OR (species = 'dog' AND sex = 'f'); (检索雄性猫或者雌性狗)
4、检索某一或几列
mysql>
SELECT name, birth FROM pet;  (检索名字和生日两列)
mysql> SELECT owner FROM pet;   (检索宠物拥有者)
mysql> SELECT DISTINCT owner FROM pet;  (同样的语句,加DISTINCT不显示重复值)

5、使用一个WHERE子句结合行选择与列选择。例如,使用下面这个查询:

mysql> SELECT name, species, birth FROM pet
    -> WHERE species = 'dog' OR species = 'cat';  查询狗和猫的出生日期)

6、结果排序:

mysql> SELECT name, birth FROM pet ORDER BY birth;  (检索数据排序使用ORDER BY (默认升序))
mysql> SELECT name, birth FROM pet ORDER BY birth DESC;  (降序在最后加DESC)

今天到此为止,下次从3.3.4.5继续!!坚持!!改变!!keep  up!!change!!

MYSQL学习笔记(一)

1、安装:sudo apt-get install mysql-server   (服务器端)注:安装过程需要设置数据库ROOT密码

              sudo apt-get install mysql-client    (客户端,好像装完服务器端这个也装上了)

2、登录:终端下:(1)mysql -h localhost -u root -p      然后会要求你输入密码

                          (2)mysql -u root -p    有密码用户的精简模式,默认主机是localhost

                          (3)mysql -u root       无密码用户精简模式,默认主机localhost

3、增加用户:

  1. mysql>GRANT ALL PRIVILEGES ON *.* TO ‘user’@’localhost’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;     拥有所有权限,有密码的本地用户
  2. mysql>GRANT ALL PRIVILEGES ON *.* TO ‘user’@’%’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;     拥有所有权限,有密码的网络远程用户
  3. mysql>GRANT RELOAD, PROCESS ON *.* TO ‘user’@’localhost;         拥有RELOAD, PROCESS权限的本地用户,无密码
  4. mysql>GRANT USAGE ON *.* TO ‘user’@’localhost;        没有权限的本地用户,无密码

4、修改用户密码:

  1. ROOT修改其他用户密码:SET PASSWORD FOR ‘user’@’localhost’ = PASSWORD (‘password’);     括号中留空则表示密码为空
  2. 用户修改自己密码:SET PASSWORD = PASSWORD (‘password’);    
  3. 全局模式更改密码:GRANT USER ON *.* TO ‘user’@’%’ IDENTIFIED BY ‘password’;

5、创建数据库:CREATE DATABASE database_name;

6、选择使用的数据库:USE database_name;    最后的分号非必需

7、显示所有数据库:SHOW databases

8、展示数据库下的所有表:SHOW tables;       使用这个命令必需是先使用USE(第6点)选择数据库

9、创建表及定义数据类型:mysql>CREATE TABLE table_name (name VARCHAR(20), Owner VARCHAR(20), Sex CHAR(1), Birth(DATE));

10、查看表的数据类型:DESCRIBE table_name;

11、向数据表中写数据:

  1. 文件导入方式:LOAD ADTA LOCAL INFILE ‘路径(区分大小写)’ INTO TABLE table_name;
  2. 单条数据手工录入:INSERT INTO table_name VALVES (‘name’, ‘owner’, ‘sex’,’birth’,);

 12、从表中检索信息:一般格式   SELECT what_to_select (需要显示的列,*表示所有) FROM which_table(数据来源表名)   WHERE conditions_to_satisfy(条件)

 

暂时写到这里,边学习边记录,以后可以翻查。

转载请注明出处及链接,谢谢!

Linux下MySQL的启动、停止、重启

公司服务器几天前就出问题了,但是由于一直没用,我也懒的去管。今天没什么事想到公司的查货系统看下,访问是可以,但是去登陆不上去,另外的我另外的工作博客也上不去,提示数据库链接不上,想上WEBMIN也不行,然后VNC访问还是不行,最后只有出绝招了(不是我的绝招)SSH,要用命令,真是要命啊!!还好SSH还能访问,最后上网查一下需要用到的命令!

比较常用的MySQL命令:

一、启动方式

1、使用 service 启动:service mysqld start

2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start

3、使用 safe_mysqld 启动:safe_mysqld&

二、停止

1、使用 service 启动:service mysqld stop

2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop

3、mysqladmin shutdown

三、重启

1、使用 service 启动:service mysqld restart (我就用这个命令搞掂的)

2、使用 mysqld  脚本启动:/etc/inint.d/mysqld restart
 

另外还有比较特殊的安全的重启方法(我试了不管用,囧!)
$mysql_dir/bin/mysqladmin -u root -p shutdown
$mysql_dir/bin/safe_mysqld &

另外附上VNCServer无法访问的解决方法:

我就直接PUTTY上SSH登陆,然后敲入命令vncserver就这样就正常了!O(∩_∩)O哈哈~