mysql sysdate用法_mysql基本用法

mysql建表常用选项

mysql> CREATE TABLE test.student(

-> 学号 char(9) NOT NULL,

-> yg_id int(4) AUTO_INCREMENT, 为字段设自增属性,自动从1

开始逐个增加

-> name varchar(12) not null,

-> FOREIGN KEY(gz_id) REFERENCES yg(yg_id),gz_id字段设

为外键,将yg表的yg_id字段作为参考键:

-> birth date NOT NULL,           用函数date表示出生日期

-> 性别 enum(‘男‘,‘女‘) NOT NULL,

-> 工资 float(7,2) NOT NULL DEFAULT 0,  //工资最大长度7

位,小数位数2位,不能为空,默认为0

-> 手机号 char(11) DEFAULT ‘‘,

-> UNIQUE(yg_id), INDEX(name)     //创建表的时候指定

INDEX索引字段为name,UNIQUE唯一索引字段为id(一个表中可有多个

UNIQUE和INDEX)

-> PRIMARY KEY(学号)            //设定主键

-> ON UPDATE CASCADE ON DELETE CASCADE  //级联更新,级联

删除

-> ) DEFAULT CHARSET=utf8;      //手工指定字符集,采用

utf8

修改MySQL服务的默认字符集支持中文

[[email protected] ~]# vim /etc/my.cnf

[mysqld]

.. ..

character_set_server=utf8                //字符支持中文

default_storage_engine=MEMORY         //改用MEMORY引擎

service mysql restart                  //重启服务

时间函数:

mysql> SELECT now();         //使用now()查看当前的日期和时间

mysql> SELECT sysdate();      //使用sysdate()查看系统日期和

时间

mysql> SELECT curdate();      //使用curdate()获得当前的日期

,不含时间

mysql> SELECT curtime();      //使用curtime()获得当前的时间

,不含日期

mysql> SELECT year(now()),month(now()),day(now()); //分别获

取当前日期时间中的年份、月份、日

mysql> SELECT month(sysdate()),day(sysdate()); //获取系统日

期时间中的月,日

mysql> SELECT time(sysdate());      //获取系统日期时间中的时

删除修改添加 字段

mysql>ALTER TABLE tea6 ADD address varchar(48);     //添加

address字段:

mysql>ALTER TABLE tea6 ADD name char(12) AFTER age; //在tea6

表的age列之后添加一个name字段

mysql> ALTER TABLE tea6 CHANGE gender      //将tea6表的

gender字段改名为sex,并添加非空约束修改操作

mysql> ALTER TABLE tea6 DROP sex;      //删除tea6表中名为sex

的字段:

mysql索引:index:普通索引 unique:唯一索引 fulltext:全文索引

primary key:主键  poreign key:外键   REFERENCES:参考键

mysql> DROP INDEX name ON tea4;              //删除tea4表的

name字段的索引

mysql> CREATE INDEX nianling ON tea4(age);  //针对age字段创

建索引名称为nianling

mysql> SHOW INDEX FROM tea4\G       //查看指定表的索引信息

mysql> DROP INDEX name ON tea5;             //清除INDEX索引

mysql> CREATE UNIQUE INDEX name ON tea5(name);      //建立

UNIQUE索引

mysql> ALTER TABLE biao01 DROP PRIMARY KEY;  //清除biao01表

的主键索引

mysql存储引擎

mysql>SHOW ENGINES\G或mysql>SHOW VARIABLES LIKE

‘default_storage_engine‘;

//查看mysql默认存储引擎

mysql> SET default_storage_engine=MyISAM;   //改用MyISAM引擎

,退出mysql失效

mysql导入/etc/passwd文件

mysql> LOAD DATA INFILE ‘/etc/passwd‘

-> INTO TABLE userlist

-> FIELDS TERMINATED BY ‘:‘;

mysql查看

mysql> SELECT COUNT(*) FROM userlist;     //统计userlist表内

的记录个数:

mysql> SELECT username,uid,gid,homedir,shell

-> FROM userlist LIMIT 10;  //查看userlist表的前10条记录

,列出用户名、UID、GID、宿主目录、登录Shell

mysql> SELECT * FROM userdb.userlist WHERE uid<100

-> INTO OUTFILE ‘/dbbak/ulist.txt‘

-> FIELDS TERMINATED BY ‘:‘;  //导出userlsit表中UID小于

100的前10条记录,文件不用存在,文件必须授权给mysql权限

mysql> INSERT INTO stu_info VALUES     //给stu_info 表插入内

容示例

-> (‘Jim‘,‘girl‘,24),

-> (‘Tom‘,‘boy‘,21),

-> (‘Mike‘,‘boy‘,21)

-> ;

mysql> SELECT count(*) FROM stu_info;    //查询stu_info表一

共有多少条记录

mysql> SELECT avg(age),max(age),min(age) FROM stu_info; //计

算表中各学员的平均年龄、最大年龄、最小年龄

mysql> SELECT count(gender) FROM stu_info WHERE

gender=‘boy‘;  //计算stu_info表中男学员的个数

mysql> SELECT * FROM stu_info WHERE age=21; //列出stu_info表

中年龄为21岁的学员记录

mysql> SELECT * FROM stu_info WHERE age>21; //列出stu_info表

中年龄超过21岁的学员记录

mysql> SELECT * FROM stu_info WHERE age>=21; //列出stu_info

表中年龄大于或等于21岁的学员记录

mysql> SELECT * FROM stu_info WHERE age BETWEEN 20 and 24;

列出stu_info表中年龄在20岁和24岁之间的学员记录

mysql> SELECT * FROM stu_info WHERE age < 23 AND

gender=‘girl‘;  //列出stu_info表中年龄小于23岁的女学员记录

mysql> SELECT * FROM stu_info WHERE age < 23 OR

gender=‘girl‘; //列出stu_info表中年龄小于23岁的学员,或者女

学员的记录

mysql> SELECT * FROM stu_info WHERE name IN

(‘Jim‘,‘Tom‘,‘Mickey‘,‘Minnie‘); //如果某个记录的姓名属于指

定范围内的一个,则将其列出

mysql> SELECT name,age+15 FROM stu_info;  //输出stu_info表各

学员的姓名、15年后的年龄

mysql> SELECT 1234*5678;  //计算1234与5678的乘积,还可以计算

加减乘除

mysql> SELECT * FROM stu_info WHERE name LIKE ‘J%‘; /使用模

糊查询,LIKE引领,以下划线 _ 匹配单个字符,% 可匹配任意多个字

符。列出stu_info表中姓名以“J”开头的学员记录

mysql> SELECT * FROM stu_info WHERE name Like ‘J%y‘; 使用正

则表达式,REGEXP引领,列出stu_info表中姓名以“J”开头且以“y

”结尾的学员记录

mysql> SELECT * FROM stu_info WHERE name REGEXP ‘^J|y$‘; 列

出stu_info表中姓名以“J”开头或者以“y”结尾的学员记录 效果

等同于:mysql> SELECT * FROM stu_info WHERE name Like ‘J%‘

OR name Like ‘%y‘;

mysql> SELECT * FROM stu_info GROUP BY age;   列出stu_info表

的所有记录,按年龄排序:

mysql> SELECT * FROM stu_info GROUP BY age DESC; 列出

stu_info表的所有记录,按年龄降序:

mysql> SELECT * FROM stu_info LIMIT 3;  查询stu_info表的所有

记录,只列出前3条

mysql> SELECT * FROM stu_info GROUP BY age DESC LIMIT 3; 列

出stu_info表中年龄最大的3条学员记录

mysql> SELECT gender,count(gender) FROM stu_info GROUP BY

gender; 按性别分组,分别统计出男、女学员的人数

mysql> SELECT gender AS ‘性别‘,count(gender) AS ‘人数‘ FROM

stu_info GROUP BY gender; 列出查询字段时,可以通过AS关键字来

指定显示别名,比如上述操作可改为

mysql> INSERT INTO stu_info(name,age) VALUES(‘Jerry‘,27);

向stu_info表插入Jerry的年龄信息,性别为默认的“boy”

mysql> UPDATE stu_info SET age=10;   将stu_info表中所有记录

的age设置为10

mysql> UPDATE stu_info SET age=20 WHERE gender=‘boy‘; 将

stu_info表中所有性别为“boy”的记录的age设置为20

mysql> DELETE FROM stu_info WHERE age < 18;  删除stu_info表

中年龄小于18的记录

忘记密码

mysqld_safe --user=mysql --skip-grant-tables    //跳过授权

mysql> UPDATE mysql.user SET password=PASSWORD(‘1234567‘)

WHERE user=‘root‘ AND host=‘localhost‘; 修改密码

mysql> FLUSH PRIVILEGES;                                  //

刷新授权表

[[email protected] ~]# mysqladmin -u root -p password ‘1234567‘

知道原密码,设置新密码

mysql> SET PASSWORD FOR [email protected]=PASSWORD(‘1234567‘);

知道原密码,设置新密码(登入mysql服务后)

mysql权限

mysql> GRANT all ON *.* TO [email protected]‘192.168.4.%‘ IDENTIFIED BY

‘tarena‘;    允许root从192.168.4.0/24访问,对所有库表有完全

权限,密码为tarena。

mysql> GRANT all ON *.* TO [email protected] -> IDENTIFIED BY

‘1234567‘ -> WITH GRANT OPTION; 建立一个管理账号dba007,对所

有库完全控制,并赋予其授权的权限

mysql> SHOW GRANTS FOR [email protected];   查看dba007的权限

mysql> REVOKE all ON *.* FROM [email protected];  撤销root从本

机访问的权限

mysql> GRANT all ON webdb.* TO [email protected]‘%‘ IDENTIFIED BY

‘888888‘;  允许webuser从任意客户机登录,只对webdb库有完全权

限,密码为 888888

mysql> GRANT select ON webdb.* TO [email protected]‘%‘;   只赋予查询

权限(授权前先撤销其他权限)

mysql数据库备份

[[email protected] ~]# mysqldump -u root -p --all-databases >

/root/alldb.sql   将所有的库备份为mysql-all.sql文件

[[email protected] ~]# mysqldump -u root -p userdb > userdb.sql

只备份指定的某一个库,将userdb库备份为userdb.sql文件

[[email protected] ~]# mysqldump -u root -p -B mysql test userdb >

mysql+test+userdb.sql  同时备份指定的多个库

[[email protected] ~]# mysql -u root -p userdb2 < /root/userdb.sql

导入备份文件,最好不要导入到老库,需提前建立新库

mysql使用 binlog 日志

[[email protected] ~]# vim  /etc/my.cnf

[mysqld]

.. ..

log-bin=mysql-bin           //启用二进制日志,并指定前缀

mysqlbinlog /var/lib/mysql/mysql-bin.000002  查看mysql-

bin.000002日志内容,确定恢复起始时间点

[[email protected] ~]# mysqlbinlog --start-datetime="2014-01-12

20:12:14" --stop-datetime="2014-01-12 20:12:50"

/var/lib/mysql/mysql-bin.000002 | mysql -u root -p   //根据

上述日志分析,只要恢复从2014.01.12 20:12:14到2014.01.12

20:13:50之间的操作即可。可通过mysqlbinlog指定时间范围输出,

结合管道交给msyql命令执行导入重做

原文:http://liangzai818.blog.51cto.com/10003446/1751097

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值