zoukankan      html  css  js  c++  java
  • mysql的一些简单命令

    mysql操作命令:
    运行cmd进入dos环境
    mysql --help查询基本情况,查询mysql提供的选择项目表
    连接:mysql -h *** -u *** -p 然后输入对应密码即可 quit推出命令
    查询版本和时间:select version(),current_time,current_date;
    mysql表示的是时钟时间而不是cpu或机器时间,这些值并不精确
    mysql不区分大小写,且它可以用作一个简单的计算器
    如:select sin(pi()/4),(4+1)*5;
    一行可以输入多个语句,中间以分号隔开
    select version();select now();
    对于较长的命令可以输入到多个行中,mysql通过寻找终止分号而不是输入行的结束来决定语句在哪里结束的,如:
    select
    user(),
    current_time;
    mysql> 会变成->,表示正在等待剩余的部分,如果此时发现输入有误可以输入“\c”结束,它将切换回mysql>如:
    select
    uer(),
    now()\c
    提示符 含义
    mysql> 准备好接收新命令
    -> 等待多行命令的下一行
    '> 等待下一行,等待以单引号开始的字符串的结束
    "> 等待下一行,等待以双引号开始的识别符的结束
    /*> 等待下一行,等待以/*开始的注释的结束
    如:
    mysql>select * from table where name='tom;
    '>
    此时由于tom后面少了单引号的结束符而出现此状况,最简单的方法就是结束它,但不能只输入\c,因为mysql作为正在收集的字符串的一部分来解释它,相反应输入关闭引号字符,然后在输入\c,即'\c,对于双引号也是这样

    使用数据库
    show databases;查看服务器上当前的数据库
    mysql和test是必须有的,mysql描述用户访问权限,test数据库经常作为用户试验的工作区
    use 数据库名;可切换至对应的数据库,use命令和quit类似,无需以分号结束,但必须保持命令在单行上
    show tables;可以查看当前数据库中的表
    管理员授权:grant all on dbname.* to 'username'@'hostname';
    创建数据库 create database dbname;unix环境下数据库名称是区分大小写的
    然后use dbname 切换至此数据库
    也可以在连接数据库时连接到此数据库,
    如:mysql -h hostname -u username -p dbname 然后输入密码
    创建宠物表pet:
    create table pet(name varchar(20),owner varchar(20),
    species varchar(20),sex char(1),birth date,death date);
    describe tablename;可以得到数据表的基本信息,忘记表的信息后可以使用该语句获得表的信息
    创建表后可以通过load data和insert语句来填充表
    你可以创建一个文本文件“pet.txt”,每行包含一个记录,用定位符(tab)把值分开,并且以CREATE TABLE语句中列出的列次序给出。对于丢失的值(例如未知的性别,或仍然活着的动物的死亡日期),你可以使用NULL值。为了在你的文本文件中表示这些内容,使用\N(反斜线,字母N),
    然后通过LOAD DATA LOCAL INFILE ''C:/Documents and Settings/Administrator/桌面/pet.txt' INTO TABLE pet;导入
    请注意如果用Windows中的编辑器(使用\r\n做为行的结束符)创建文件,应使用:
    mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
    -> LINES TERMINATED BY '\r\n';
    (在运行OS X的Apple机上,应使用行结束符'\r'。)
    如果你愿意,你能明确地在LOAD DATA语句中指出列值的分隔符和行尾标记,但是默认标记是定位符和换行符。这对读入文件“pet.txt”的语句已经足够。
    也可以通过insert语句添加一条新记录:
    insert into pet values('none','Dinae','cat','f','2009-05-28',null);
    选择数据
    select * from pet;
    修正数据:
    方法一:先删除 delete from pet;,然后修改pet.txt文件,通过load data重新导入
    方法二:update pet set birth='2011-08-31' where name='liang';
    update pet set sex='m'where name in ('jia','hai','fan');
    update pet set sex='m'where name='zhang 'or name='yong';
    查找符合条件的数据
    select * from pet where birth>'2005-10-25';
    AND和OR可以混用,但AND比OR具有更高的优先级,如果你使用两个操作符,使用圆括号指明如何对条件进行分组是一个好主意:
    mysql> select * from pet where(species='dog' and sex='m')or (species='bird' and sex='f');
    选择特殊的列:
    SELECT owner FROM pet;结果中有些可能出现了多次
    SELECT distinct owner FROM pet;输出减到最少,增加关键字DISTINCT检索出每个唯一的输出记录
    SELECT name, birth FROM pet ORDER BY birth;按出生日期排序,默认是升序
    SELECT name, birth FROM pet ORDER BY birth DESC;按降序排列
    可以对多个列进行排序,并且可以按不同的方向对不同的列进行排序。例如,按升序对动物的种类进行排序,然后按降序根据生日对各动物种类进行排序(最年轻的动物在最前面),
    如:select name,species,birth from pet order by species,birth desc;
    ===================================
    日期计算:
    select name,birth,curdate(),(year(curdate())-year(birth));
    要想确定每个宠物有多大,可以计算当前日期的年和出生日期之间的差。如果当前日期的日历年比出生日期早,则减去一年。以下查询显示了每个宠物的出生日期、当前日期和年龄数值的年数字。
    mysql> SELECT name, birth, CURDATE(),
    -> (YEAR(CURDATE())-YEAR(birth))
    -> - (RIGHT(CURDATE(),5)<RIGHT(birth,5))
    -> AS age
    -> FROM pet order by name;
    +----------+------------+------------+------+
    | name | birth | CURDATE() | age |
    +----------+------------+------------+------+
    | Fluffy | 1993-02-04 | 2003-08-19 | 10 |
    | Claws | 1994-03-17 | 2003-08-19 | 9 |
    | Buffy | 1989-05-13 | 2003-08-19 | 14 |
    | Fang | 1990-08-27 | 2003-08-19 | 12 |
    | Bowser | 1989-08-31 | 2003-08-19 | 13 |
    | Chirpy | 1998-09-11 | 2003-08-19 | 4 |
    | Whistler | 1997-12-09 | 2003-08-19 | 5 |
    | Slim | 1996-04-29 | 2003-08-19 | 7 |
    | Puffball | 1999-03-30 | 2003-08-19 | 4 |
    +----------+------------+------------+------+

    此处,YEAR()提取日期的年部分,类似函数还有month(),dayofmonth(),RIGHT()提取日期的MM-DD (日历年)部分的最右面5个字符。比较MM-DD值的表达式部分的值一般为1或0,如果CURDATE()的年比birth的年早,则年份应减去1。整个表达式有些难懂,使用alias (age)来使输出的列标记更有意义。
    查询已死亡动物的年龄:
    mysql> select name,birth,death,(year(death)-year(birth))-(right(birth,5)>right(death,5)) as age from pet where death>'0000-00-00' order by age;
    请注意在MySQL中,0或 NULL意味着假而其它值意味着真。布尔运算的默认真值是1。
    对NULL的特殊处理即是在前面的章节中,为了决定哪个动物不再是活着的,使用death IS NOT NULL而不使用death != NULL的原因。
    查找下月过生日的动物(前提是未死亡):
    SELECT name, birth, MONTH(birth) FROM pet;
    找出下个月生日的动物也是容易的。假定当前月是4月,那么月值是4,你可以找在5月出生的动物 (5月),方法是:
    如果当前月份是12月,就有点复杂了。你不能只把1加到月份数(12)上并寻找在13月出生的动物,因为没有这样的月份。相反,你应寻找在1月出生的动物(1月) 。
    你甚至可以编写查询,不管当前月份是什么它都能工作。采用这种方法不必在查询中使用一个特定的月份,DATE_ADD( )允许在一个给定的日期上加上时间间隔。如果在NOW( )值上加上一个月,然后用MONTH()提取月份,结果产生生日所在月份:
    mysql> SELECT name, birth FROM pet
    -> WHERE MONTH(birth) = MONTH(DATE_ADD(CURDATE(),INTERVAL 1 MONTH));
    完成该任务的另一个方法是加1以得出当前月份的下一个月(在使用取模函数(MOD)后,如果月份当前值是12,则“回滚”到值0):
    mysql> SELECT name, birth FROM pet
    -> WHERE MONTH(birth) = MOD(MONTH(CURDATE()), 12) + 1;
    ------------------------------------------------------------
    null值操作
    null值意味着没有值或未知值
    只能用** is null 或者** is not null,而不是**=null 或**!=null,在mysql中0或null意味着假而其他值意味着真,布尔运算的默认值为1.
    在group by中两个null视为相同
    执行order by时,如果运行order by * asc,则null值出现在最前面,若desc则排在最后面
    --------------------------------------
    模式匹配
    SQL模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零字符)。在 MySQL中,SQL的模式默认是忽略大小写的。下面给出一些例子。注意使用SQL模式时,不能使用=或!=;而应使用LIKE或NOT LIKE比较操作符。

    Linux下重启MySQL的正确方法:

    1、通过rpm包安装的MySQL

        service mysqld restart

    2、从源码包安装的MySQL

        // linux关闭MySQL的命令

        $mysql_dir/bin/mysqladmin -uroot -p shutdown

        // linux启动MySQL的命令

        $mysql_dir/bin/mysqld_safe &

    其中mysql_dir为MySQL的安装目录,mysqladmin和mysqld_safe位于MySQL安装目录的bin目录下,很容易找到的。

    3、以上方法都无效的时候,可以通过强行命令:“killall mysql”来关闭MySQL,但是不建议用这样的方式,因为这种野蛮的方法会强行终止MySQL数据库服务,有可能导致表损坏

    步骤或方法:RedHat Linux (Fedora Core/Cent OS)

    1.启动:/etc/init.d/mysqld start

    2.停止:/etc/init.d/mysqld stop

    3.重启:/etc/init.d/mysqld restart

    Debian / Ubuntu Linux

    1.启动:/etc/init.d/mysql start

    2.停止:/etc/init.d/mysql stop

    3.重启:/etc/init.d/mysql restart

    Windows

    1.点击“开始”->“运行”(快捷键Win+R)。

    2.启动:输入 net stop mysql

    3.停止:输入 net start mysql

    提示* Redhat Linux 也支持service command,启动:# service mysqld start 停止:# service mysqld stop 重启:# service mysqld restart

    * Windows下不能直接重启(restart),只能先停止,再启动。

    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

  • 相关阅读:
    能力与知识、技能三者之间的区别与联系(技能与知识最大的差别是,技能是以熟练不熟练为判断的,才干是自动自发的能力,仅有知识而缺乏技能所谓“高分低能”)
    薪酬是由其商业价值与企业需求的匹配程度决定(别人的难题,就是你的价值)
    SpringMVC类型转换、数据绑定
    jQuery easyuI datagrid
    流程控制
    微信接口后台开发与配置
    WCF的简单
    .Net集成PayPal的Demo
    WCF服务最近经常死掉
    扩展方法、链式编程
  • 原文地址:https://www.cnblogs.com/90zyh/p/2859213.html
Copyright © 2011-2022 走看看