h:当连接MySQL服务器不在同台主机时,填写主机名或IP地址
u:登录MySQL的用户名
p:登录MySQL的密码
注意:密码如果写在命令行的时候一定不能有空格。如果使用的系统为linux并且登陆用户名字与MySQL的用户名相同即可不用输入用户名密码,linux默认是以root登windows默认用户是ODBC
更改密码:mysqladmin -u root -p password 新密码 回车后输入旧密码确认即可更改注意:结尾无分号
mysql常用指令
显示所有数据库:show databases;
选定默认数据库:use dbname;
显示默认数据库中所有表:show tables;放弃正在输入的命令:\c
显示命令清单:\h
退出mysql程序:\q
查看MySQL服务器状态信息:\s
mysqladmin命令
mysqladmin命令完成许多系统管理任务,如创建或删除一个数据库、修改密码等格式:mysqladmin [option] admincommand
创建数据库mysqladmin –u root –p create newdb
删除数据库
mysqladmin –u root –p drop newdb
格式化信息显示表状态 show table status like 'tutorials_tbl'\G;
格式化信息显示索引状态 SHOW
INDEX
FROM
table_name\G
格式化信息显示获取数据表结构 SHOW
CREATE
TABLE
tutorials_tbl \G;
重置序列
如果你删除了数据表中的多条记录,并希望对剩下数据的AUTO_INCREMENT列进行重新排列,那么你可以通过删除自增的列,然后重新添加来实现。 不过该操作要非常小心,如果在删除的同时又有新记录添加,有可能会出现数据混乱。操作如下所示:
mysql> ALTER TABLE insect DROP id;
mysql> ALTER TABLE insect
-> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
-> ADD PRIMARY KEY (id);
统计重复数据以下我们将统计表中 first_name 和 last_name的重复记录数:
mysql> SELECT COUNT(*) as repetitions, last_name, first_name
-> FROM person_tbl
-> GROUP BY last_name, first_name
-> HAVING repetitions > 1;
一般情况下,查询重复的值,请执行以下操作:
>确定哪一列包含的值可能会重复。
>在列选择列表使用COUNT(*)列出的那些列。
>在GROUP BY子句中列出的列。
>HAVING子句设置重复数大于1。
SQL语法
1.DDL数据定义语言: ①create ②alter ③drop
用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用
2.DML数据操作语言: ④insert into ⑤delete from ⑥select...from ⑦update ...set 对数据库里的数据进行操作的语言3.DCL数据控制语言: ⑧grant授予权限 ⑨revork撤销权限 是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句
4.功能函数
日期函数、数学函数、字符函数、系统函数等
5.连接查询
内连接:求交集 inner join...on
左外连接:将2个表的交集及左表的空数据打印出来 left join...on
右外连接:将2个表的交集及右表的空数据打印出来 right join...on
SQL注入
所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
防止SQL注入,我们需要注意以下几个要点:
1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和 双"-"进行转换等。
2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装
6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。