1、创建、显示数据库
create database databasename;
show databases;
2、使用数据库
use databasename;
3、显示表格
show tables;
4、创建表
create table article
(
id int primary key auto_increment,
pid int,
rootid int,
title varchar(255),
cont text,
pdate datetime,
isleaf int
);
//auto_increment表示自增字段
5、增加字段
alter table article add (title1 varchar(255));
6、修改字段
alter table article modify id int(4);
7、删除表中列
alter table article drop column title1;
8、删除表
drop table article;
9、执行本地SQL脚本
打开MYSQL COMMAND:
\. e:\\bbs.sql
这里我把bbs.sql放在e盘根目录下。
命令注意:是\.而不是.\,另外:最后不需加";"号。
在MYSQL中有时利用MYSQL FONT插入时会导致插入的中文变成?号,但采用这种方法及直接在命令提示符下插入时则不会。
内容如下:
create database bbs;
use bbs;
create table article
(
id int primary key auto_increment,
pid int,
rootid int,
title varchar(255),
cont text,
pdate datetime,
isleaf int
);
insert into article values (null, 0, 1, '蚂蚁大战大象', '蚂蚁大战大象', now(), 1);
insert into article values (null, 1, 1, '大象被打趴下了', '大象被打趴下了',now(), 1);
insert into article values (null, 2, 1, '蚂蚁也不好过','蚂蚁也不好过', now(), 0);
insert into article values (null, 2, 1, '瞎说', '瞎说', now(), 1);
insert into article values (null, 4, 1, '没有瞎说', '没有瞎说', now(), 0);
insert into article values (null, 1, 1, '怎么可能', '怎么可能', now(), 1);
insert into article values (null, 6, 1, '怎么没有可能', '怎么没有可能', now(), 0);
insert into article values (null, 6, 1, '可能性是很大的', '可能性是很大的', now(), 0);
insert into article values (null, 2, 1, '大象进医院了', '大象进医院了', now(), 1);
insert into article values (null, 9, 1, '护士是蚂蚁', '护士是蚂蚁', now(), 0);
10、主键与外键
create table dept
(
depno int primary key,
dname varchar(20)
);
create table emp
(
empno int primary key,
empname varchar(20),
depno int,
foreign key (depno) references dept(depno)
);
11、返回多少行limit
select * from article limit 0,10;
返回article表中第一行开始的10行数据
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。
参数必须是一个整数常量。
如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1):
如我要返回第10行到第20行的数据:
select * from article limit 9,10;
可理解为从第10条开始(9表示的是第10条) 包括第10条。。取10条数据。
也可理解为从第9条往后(不包括第9条)取10条数据。
如下:
SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15
注意:以下测试过现在不行,不知道以前是不是可以。
//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
//mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.
如果只给定一个参数,它表示返回最大的记录行数目:
mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行
换句话说,LIMIT n 等价于 LIMIT 0,n。
12、now()表当前日期
日期处理: select date_format(now(),'%y-%m-%d %h:%i:%s');
13、查看MYSQL中表创建时使用的编码:show create table article;
如果后台是UTF8则在命令行输入命令前应:set names gbk
注意my.ini中的配置:有两个character-set的地方:
[mysql]
default-character-set=gb2312 #指的是在命令行输入的sql命令的编码,这个设置为GBK输入SQL命令时不用再输入SET NAMES GBK。
。。。。
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=gb2312 #数据库存储数据所采用的编码,这个可以改为UTF8
配置更改后重启服务。
JDBC测试:
import java.sql.*;
public class DB {
public static Connection getConnection(){
Connection con=null;
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bbs","root","sys833199");
}catch(ClassNotFoundException e){
System.out.println("数据库驱动未找到,详情为"+e);
}catch(SQLException e){
System.out.println("连接数据库出错,详情为"+e);
}
return con;
}
public static Statement createStatement(Connection con){
Statement st = null;
try{
st = con.createStatement();
}catch(SQLException e){
System.out.println("创建会话出错"+e);
}
return st;
}
public static ResultSet executeQuery(Statement st,String sql){
ResultSet rs = null;
try {
rs = st.executeQuery(sql);
} catch (SQLException e) {
System.out.println("返回结果集出错"+e);
}
return rs;
}
public static void executeUpdate(Statement st,String sql){
try {
st.executeUpdate(sql);
} catch (SQLException e) {
System.out.println("返回结果集出错"+e);
}
}
public static void close(Connection con){
if(con!=null){
try {
con.close();
} catch (SQLException e) {
System.out.println("连接关闭出错"+e);
}
}
}
public static void close(Statement st){
if(st!=null){
try {
st.close();
} catch (SQLException e) {
System.out.println("会话关闭出错"+e);
}
}
}
public static void close(ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
System.out.println("返回结果集关闭出错"+e);
}
}
}
}
附件为测试项目