注意:密码如果写在命令行的时候一定不能有空格。如果使用的系统为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攻击等。