- Mysql查询当前时间
mysql> select curdate(); +------------+ | curdate() | +------------+ | 2020-04-19 | +------------+ 1 row in set (0.02 sec) mysql> select now(); +---------------------+ | now() | +---------------------+ | 2020-04-19 17:44:34 | +---------------------+ 1 row in set (0.00 sec) mysql> select DATE_FORMAT(now(),'%Y-%m-%d %H:%i:%s') from dual; +----------------------------------------+ | DATE_FORMAT(now(),'%Y-%m-%d %H:%i:%s') | +----------------------------------------+ | 2020-04-19 17:38:43 | +----------------------------------------+ 1 row in set (0.00 sec) 下列修饰符可以被用在format字符串中: %M 月名字(January……December) %W 星期名字(Sunday……Saturday) %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) %Y 年, 数字, 4 位 %y 年, 数字, 2 位 %a 缩写的星期名字(Sun……Sat) %d 月份中的天数, 数字(00……31) %e 月份中的天数, 数字(0……31) %m 月, 数字(01……12) %c 月, 数字(1……12) %b 缩写的月份名字(Jan……Dec) %j 一年中的天数(001……366) %H 小时(00……23) %k 小时(0……23) %h 小时(01……12) %I 小时(01……12) %l 小时(1……12) %i 分钟, 数字(00……59) %r 时间,12 小时(hh:mm:ss [AP]M) %T 时间,24 小时(hh:mm:ss) %S 秒(00……59) %s 秒(00……59) %p AM或PM %w 一个星期中的天数(0=Sunday ……6=Saturday ) %U 星期(0……52), 这里星期天是星期的第一天 %u 星期(0……52), 这里星期一是星期的第一天 %% 一个文字“%”。
1. Mysql修改用户密码
转载:
方法1: 用SET PASSWORD命令
首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
方法4:在忘记root密码的时候,可以这样
以windows为例:
1. 关闭正在运行的MySQL服务。
2. 打开DOS窗口,转到mysqlin目录。
3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysqlin目录。
5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
6. 连接权限数据库: use mysql; 。
6. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。
7. 刷新权限(必须步骤):flush privileges; 。
8. 退出 quit。
9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
2. 关于MySQL数据库的默认编码
查看数据库的编码,有如下两种方式,
(1)使用status命令
mysql> status;(2)使用show variables命令
mysql> show variables like 'char%';如果要查看某个数据库的编码,在运行上面的命令前,应先执行use db_name;命令切换数据库(db_name为要查看的数据库名)。
2. 改变MySQL数据库的默认编码
安装MySQL数据库时的默认编码是latin1,实际使用时可能要使用其他编码。下文描述如何将默认编码改为utf8:
首先修改MySQL的配置文件/etc/mysql/my.cnf:
在[client]下追加:
default-character-set=utf8
在[mysqld]下追加:
character-set-server=utf8
在[mysql]下追加:
default-character-set=utf8
修改完毕后,使用如下命令之一重启mysql服务:
service mysql restart
/etc/init.d/mysql restart
改变后,之前手工创建的数据库如未显式指定编码,则其编码仍是默认的latin1,可使用如下命令更改编码:
mysql> alter database db_name CHARACTER SET utf8;
————————————————
原文链接:https://blog.csdn.net/wangnan537/article/details/47819167设置完utf8后,使用 source D:/mysql.sql; 执行sql语句插入记录,插入汉字出错,明显是因为编码的问题。
#查看并改变一个表的字符集
show create table user;
alter table user character set utf8;
#检查数据表所有字段的状态:SHOW FULL COLUMNS FROM user;
#改变一列的字符集:alter table user change name name varchar(20) character set utf8 collate utf8_unicode_ci not null default '';MySQL:ERROR 1366 (HY000)错误解决:https://blog.csdn.net/jiazhangyierzi/article/details/81215831
Window的CMD窗口,使用utf8:chcp 65001
3. 创建视图
#创建视图(with check option 表示不允许修改该视图的数据) create or replace view view_test as select user_name name, age, address from user with check option; #通过 show tables; 可以看到该视图
4. 主表、从表
主表
在数据库中建立的表格即Table,其中存在主键(primary key)用于与其它表相关联,并且作为在主表中的唯一性标识。
从表
以主表的主键(primary key)值为外键 (Foreign Key)的表,可以通过外键与主表进行关联查询。从表与主表通过外键进行关联查询。
关系及用法概述:
从表数据依赖于主表,一般最后查询数据时把主表与从表进行关联查询。主表可用于存储主要信息,如客户资料(客户编号,客户名称,客户公司,客户单位等),从表用来存储客户扩展信息(客户订单信息,客户地址信息,客户联系方式信息等)
一般来说,主表与从表是一对多的关系。例如:老师 --> 学生
# 主表 create table tb_teachers ( id int(10) primary key comment '教师编号', name varchar(20) not null comment '教师的名字' )comment='存教师信息的表'; insert into tb_teachers values(1001,'白岩松'); insert into tb_teachers values(1002,'杜甫'); # 从表 create table tb_students ( id int(10) primary key comment '学生编号', name varchar(20) not null comment '学生的名字', teacher_id int(10) comment 'FOREIGN KEY 老师的编号', #使用表约束语法建立外键约束,并指定约束名为 student_teacher_fk constraint student_teacher_fk foreign key(teacher_id) references tb_teachers(id) on delete cascade #也可以用 on delete set null )comment='存学生信息的表'; insert into tb_students values(1,'Lee', 1002); insert into tb_students values(2,'Wang', 1001); #删除外键约束 alter table tb_students drop foreign key student_teacher_fk; #添加外键约束 #(on delete cascade :表示删除主表记录时,把参照该主表记录的从表记录全部级联删除) #(on delete set null :表示删除主表记录时,把参照该主表记录的从表记录的外键设为null) #当没有写 on delete cascade 或 on delete set null 时,是无法删除主表中被引用的记录的。 alter table tb_students add constraint student_teacher_fk foreign key(teacher_id) references tb_teachers(id); alter table tb_students add constraint student_teacher_fk foreign key(teacher_id) references tb_teachers(id) on delete set null;
******************